7
votes

Perl - Cartographie rubis?

Je me suis impliqué dans un nouveau projet où Perl est un must. Je viens d'une bonne fondation de rubis et je veux une introduction rapide ou une cartographie entre Perl et Ruby, car j'ai entendu dire que Perl et Ruby sont très proches de la syntaxe (ne rien savoir sur les fonctionnalités).

  1. Avez-vous des recommandations pour moi?
  2. Quel grand livre Perl recommandez-vous comme une référence étendue?
  3. Quelle est la version couramment utilisée de Perl en ce moment?

1 commentaires

En tant que quelqu'un qui a passé des années et des années à la programmation Perl, passa ensuite à Ruby, je vais suggérer un vêtement de grandes peintres pour garder le sang d'aller partout lorsque vous vous abattres les poignets. :-) La "liberté" de Perl semblera probablement un peu désordonnée et déroutante. J'écris et soutenons toujours le code Perl et j'ai toujours hâte de revenir au codage de rubis car il se sent ... plus propre.


5 Réponses :


4
votes

Avez-vous des recommandations pour moi?

Perl.org est un bon site pour obtenir des ressources

Quel grand livre Perl recommandez-vous comme une référence étendue?

Programmation Perl et L'apprentissage Perl est très agréable, mais jetez également un look ici

Quelle est la version commune utilisée de Perl en ce moment?

dépend de votre plate-forme, jetez un look ici


0 commentaires

16
votes

I Deuxième livre de Nathan Recs Recs, bien que je mentionnerais aussi début perl . Deux fonctionnalités bonus sont (1) il est disponible librement (et légalement) en ligne dans sa première édition (Remarque: ce site est chronométrant en ce moment et je ne suis pas sûr si cela est temporaire ou non) et (2) il couvre autant que l'apprentissage perl et perl intermédiaire < / em> combiné. Un con est que c'est parfois plus élémentaire que vous voudrez peut-être. ( l'apprentissage perl va plus vite et suppose un peu plus - ce qui peut être une bonne chose.)

Vous pouvez également consulter ceci: à Ruby de Perl du site Web de Ruby. Il suffit de penser à cela en sens inverse.

En termes de versions, 5.10.1 est stable, mais vous rencontrerez une gamme. Pour la plupart, vous trouverez 5,8.x et up, je soupçonne. (Comme avec Ruby 1.9.1 est stable, mais vous trouverez de nombreux endroits toujours en utilisant 1,8,6 ou plus.)

Depuis que je vais un peu dans la direction opposée (je sais que Perl de manière raisonnable et j'utilise de plus en plus de rubis de plus en plus), je peux mentionner des choses qui m'entendent:

  1. en Perl, vous obtenez une conversion automatique entre les chaînes et les chiffres (et vous n'avez pas besoin de demander explicitement un résultat de flotteur en utilisant .to_f ou en faisant un élément de flotteur).
  2. Les points-virgules sont pas facultatifs aux déclarations finales de Perl. De la même manière, les parenthèses sont facultatives moins souvent à Perl qu'au rubis. (Cela devient complexe rapidement, mais par exemple, vous devez avoir des parenthèses pour le test dans une condition ou un pendant bloc.)
  3. 0 (chaîne, entier et flotteur), Undef et la chaîne vide évaluez comme false dans les tests booléens.
  4. Il n'y a pas de booléens distincts true et false .
  5. Vous distinguez les types de données avec les sigils: $ foo est un scalaire; @foo est un tableau; % foo est un hachage. (Les tableaux en particulier vous bogueront: ils ne sont pas des variables d'instance.)
  6. Vous devez explicitement la portée des articles dans Perl, à l'aide du mot clé mon .
  7. Les tableaux de Perl sont automatiquement aplatisés lorsqu'ils sont combinés. (Cela mord constamment dans Ruby.)
  8. contexte, contexte, contexte. En Perl, une quantité énorme de ce que votre code dépend effectivement de la compréhension du contexte dans lequel vous vous trouvez. Voici A Link pour commencer, mais c'est un gros sujet avec beaucoup de coins et de crannies.

    (Notez que je n'ai pas mentionné le gorille de 1000 livres dans la pièce. OO fait partie de ce que Perl est et peut faire, mais ce n'est pas au centre de Perl, comme c'est dans Ruby.)


7 commentaires

Le problème avec le lien vers Début de Perl était temporaire: log.perl.org/2009/10/fuel-pump-fail.html


Moose fait certainement le rubyomètre Twig un peu :)


Pouvez-vous clarifier ce que vous voulez dire dans le point 5 sur les tableaux de ne pas être des variables d'instance? Les variables complexes dans la plupart des langues sont transmises par référence et il appartient au programmeur de cloner l'objet si nécessaire. Perl n'est pas différent dans la respect, est rubis?


Eric Strom: Il souligne cela parce que dans les sigils rubis désignant la portée. Donc, un @var à Ruby est similaire à un "My" Var à Perl.


@ERIC: J'étais averti Khelll sur une ambiguïté visuelle. Dans Ruby, @variable indique quelque chose à propos de la portée d'une variable (c'est une variable d'instance), mais dans Perl, le @ vous indique immédiatement sur le type de données (c'est un déployer). Si vous passez d'une langue à l'autre, le décalage des signaux visuels peut être un jarring - pour dire le moins - au début.


Merci, cela a du sens et montre à quel point j'ai vu peu de rubis, mais je suppose que c'est bien d'avoir la clarification ici.


@ ne signifie pas une matrice dans Perl. Cela signifie plusieurs éléments, comme dans @hash {@Keys}.



13
votes

Versions

Dans l'enquête Perl 2007 ***, la majorité des codeurs Perl utilisaient Perl 5.8, avec 87% en utilisant 5,8.x au moins une partie du temps et 5.8.8 étant la version unique la plus courante. Une minorité utilisait 5.6.x pour au moins certains projets et une minorité plus petite (mais occasionnellement assez de voix) utilise 5,005. Depuis que ce point Perl 5.10 a été libéré et ce n'est pas encore clair, quel est le taux d'adoption; probablement de nombreuses entreprises sont en cours de conservation et de fonctionnement 5.8.8 ou 5.8.9, mais beaucoup de ce que vous pourriez appeler des "pirates de premier plan" utilisent 5.10.1 et même parfois nécessiter ses caractéristiques.

Références


4 commentaires

Un excellent article (les résultats de l'enquête sont très utiles), mais je dois être en désaccord avec une chose. apprendre Perl fait avec catégorie pas couvrir "toutes les caractéristiques majeures de la langue". En début, il ne couvre pas ces: références, OO en Perl, um - références, structure de données complexe (voir références). Je recommande à peu près que quiconque achète apprentissage perl achète également perl intermédiaire immédiatement, à moins qu'ils ne prévoient que d'écrire uniquement des scripts de courtoison.


Vous m'avez bien eu. Peut-être que Début de Perl est une meilleure recommandation puisqu'il devient plus approfondi, mais j'ai toujours été reporté par son style d'écriture / enseignement.


@Hobbs: Ne vous méprenez pas, j'adore apprendre Perl . Je pense juste que c'est une partie d'un film de deux parties.


Perlsurvey 2007 (et le planifié suivant) se trouve sur GitHub: Github.com/singingfish/perl -Suvey-2009 Le rapport de 2007 peut être trouvé là (Perlsurvey2007A4.PDF).



4
votes

Les gens continuent à me dire ramasser perl est daté et ils ont raison mais c'est un tel Introduction concise que je recommanderais de le lire, puis sauter directement dans perl intermédiaire et Perl meilleures pratiques ainsi que Perl Cookbook . Le livre de cuisine est génial si vous apprenez de mieux en béton, des exemples de taille.

En outre, je vraiment Recommander la lecture Liste de la FAQ avant de faire autre chose.


2 commentaires

Si vous êtes un fan d'introductions quelque peu idiosyncratiques à Perl, j'aime aussi Apprentissage de Perl de la dure . L'auteur propose un fichier PDF librement ou vous pouvez acheter une version d'une image morte de Lulu: GreenteAppress.com/perl


@Telemachus j'aime ce livre.



0
votes

Je recommande "Programmation Perl", "Perl meilleures pratiques" et le "Perl Cookbook" également.

Le livre "PBP" est bon, non pas parce que cela vous enseigne des règles, mais parce que cela vous fait arrêter et réfléchir à la raison pour laquelle vous devriez faire des choses d'une certaine manière et faire une décision éduquée lorsque vous décidez de vous écarter de la voie recommandée par Conway .

Quant à la documentation, j'utilise souvent les documents de CPAN comme ils sont les liens hypertextes les plus courants et offrent des hyperliens, ce que nous ne recevons pas de la section locale perdocs sur notre lecteur.

Une des choses que j'ai adorées à propos de Ruby quand j'ai commencé à l'utiliser par rapport à Perl, était gemmes vs cpan. Garder un ensemble de gemmes actuels semble tellement plus facile qu'un ensemble de modules basés sur CPAN.

Et, comme Sinan dit, les FAQ sont une grande lecture. J'ai lu et je les ai relissies plusieurs fois parce que la connaissance est bonne de garder dans votre tête.

Et, bien qu'ils puissent être plutôt émoussés, les perlmonks sont une ressource merveilleuse. Il suffit de rechercher et de lire comment ils recommandent de faire des choses peuvent augmenter votre conscience Perl plusieurs niveaux, même si vous ne les engagez pas avec une question directe.

Et, dans le chemin du moine, contemplez les hachages de Perl et apprendre à les trancher. Ils sont le shiz.


0 commentaires