Un module Perl qui transforme une chaine en un fichier midi qui joue le code morse correspondant.
Le module HTML::LinkExtor permet d'extraire les liens données dans une page web.
C'est une façon rapide et facile d'obtenir la liste des adresses d'une page, ou de savoir le chemin des images qui y sont référées. On peut alors facilement télécharger ces documents pour utilisation future à votre discrétion...
Le module suppose que vous lui donnez accès à un document HTML : pour extraire les adresses à partir d'un URL, il suffit de le coupler avec LWP. La documentation de HTML::LinkExtor donne un exemple de ce genre d'utilisation.
Trouvé sur slashdot dans la discussion qui a suivi le texte de Yahoo! News.
1) Just because you can, doesn't mean you should. 2) One line of code means one operation or idea. MAAAAYBE 2. See point #1. 3) If there is a cute, short, hackerish way to do something, and a longer, more boring, more explicit way to do the same thing, ALWAYS pick the boring way. Anyone who looks at your code in six months will be very pleased (instead of ready to kill you).
La future-nouvelle version de Perl, Perl6, et son engin interne Parrot font parler d'eux dans Yahoo! News.
Bizarrement, c'est dans la section "business" : on pense plus à l'aspect économique de l'événement, j'imagine, même si le texte parle en fait plus de l'amélioration technique (bon, de très haut niveau, c'est vrai...).
Le Dr Conway, qui est mentionné dans l'article, est le "savant fou" qui a fait les version de Perl en Latin et en Klingon dont je vous ai parlé... :)
Disponible à l'endroit habituel
Les notes du cours 3 on aussi été modifié puisque la partie "librairie" a été déménagé dans ce cours. Je vais tâcher de passer le moins de temps possible sur ca en classe parce que...
Ensuite : introduction aux expressions régulières!
De la poésie écrite en Perl?
Voir les gagnants chez ActiveState.
Les notes du cours no 3 sont disponibles.
Les expressions régulières sont remises à la semaine prochaine : je préfère garder tout ça dans un beau bloc plutôt que coupé en deux. On va plutôt terminer les fonctions intégrées puis voir comment faire/utiliser des librairies.
Disponible sur FTLS.org
Le texte est, il me semble, clair, pas trop long, et en français. :)
Donc, quelque chose d'intéressant à parcourir, lire, ou même imprimer comme "référence rapide"
Voici les notes de cours utilisés dans les deux cours précédent. Comme "promis", elles sont plutôt succinctes, particulièrement celles du premier cours.
Je vous suggère d'utiliser ces notes comme un rappel de la matière vue et comme un guide pour savoir la matière à lire et comprendre dans les sites de référence donnés sur ce site ou dans le cours.
Le premier cours et le second cours.
Travail pratique 1 ( 10% de la note finale )
Numéro 1 (2 points) :
Écrire un générateur de mot de passe : lorsque lancé, le programme va demander à l'usager le nombre de caractères voulus dans le mot de passe puis il va générer un mot de passe au hasard et l'afficher à l'écran.
Numéro 2 (5 points) :
Écrire un clone de la commande unix wc : compter le nombre de lignes, mots et charactères des fichiers dont le nom est passé en paramètres. Il faut supporter les options -l, -w, -c, qui permettent de limiter les réponses données aux lignes, mots et caractères, respectivement (une seule option sera donnée à la fois).
Numéro 3 (3 points) :
Faire une adaptation du programme du numéro 2 pour pouvoir recevoir indifféremment un nom de fichier ou de répertoire en paramètres : s'il s'agit d'un répertoire, il faudra alors donner les statistiques pour l'ensemble des fichiers contenu dans le répertoire.
L'énoncé est aussi disponible en format PDF, OpenOffice (faire "shift-click" pour sauvegarder) ou Word.
La documentation de Perl est disponible à de nombreux endroits, à commencer par votre propre machine (via man perl et les pages qui y sont référées)
Un excellent endroit pour retrouver la documentation de diverses versions en version Web recherchable est chez perldoc.com
La documentation de Perl est également disponible en français à divers endroits, dont notament perl-gratuit.com.
A voir tout particulièrement au niveau ou nous en sommes pour le moment : les pages perlfunc et perlop, qui décrivent respectivement les fonctions intégrés et les opérateurs. Disponibles en francais aussi, bien sur : perlop, perlfunc
Un bout de code intéressant sur un T-shirt de chez ThingGeek.com
Amusez-vous à copier ce code dans un fichier pour voir ce qui va en sortir.. :)
Oh, et en passant, si le chameau est un peu croche, c'est "normal" : c'est sans doute une question de police d'écriture... Regardez le source du document, ou encore copier/coller dans un éditeur du genre de Vi.
#!/usr/bin/perl -w use strict; $_='ev al("seek\040D ATA,0, 0;");foreach(1..2) {;}my @camel1hump;my$camel; my$Camel ;while( ){$_=sprintf("%-6 9s",$_);my@dromedary 1=split(//);if(defined($ _=)){@camel1hum p=split(//);}while(@dromeda ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;} $CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){ $camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift( @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if( defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@ camel1hump){chomp;$Camel=$_;tr/LJF7\173\175`\047/\061\062\063 45678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;print"$_\040 $Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y/LJF7\173\17 5`\047/12345678/;tr/12345678/JL7F\175\173\047`/;$_=reverse;p rint"\040$_$Camel\n";}#japh-Erudil';;s;\s*;;g;;eval; eval ("seek\040DATA,0,0;");undef$/;$_=;s$\s*$$g;( );;s ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124 \1 50\145\040\165\163\145\040\157\1 46\040\1 41\0 40\143\141 \155\145\1 54\040\1 51\155\ 141 \147\145\0 40\151\156 \040\141 \163\16 3\ 157\143\ 151\141\16 4\151\1 57\156 \040\167 \151\164\1 50\040\ 120\1 45\162\ 154\040\15 1\163\ 040\14 1\040\1 64\162\1 41\144 \145\ 155\14 1\162\ 153\04 0\157 \146\ 040\11 7\047\ 122\1 45\15 1\154\1 54\171 \040 \046\ 012\101\16 3\16 3\15 7\143\15 1\14 1\16 4\145\163 \054 \040 \111\156\14 3\056 \040\ 125\163\145\14 4\040\ 167\1 51\164\1 50\0 40\160\ 145\162 \155\151 \163\163 \151\1 57\156\056 # camel code, copyright 2000 by Stephen B. Jenkins # The use of a camel image with the topic of Perl # is a trademark of O'Reilly & Associates, Inc. # Used with permission.
Le livre Beginning Perl de Simon Cozens est disponible gratuitement (et légalement...) en ligne.
L'auteur est un "gros canon" du monde Perl. Pour vous donner une idée, c'est lui qui roule le site perl.com et il présente une collection de modules impressionnantes sur le CPAN.
Ok, la grande question de trouver un éditeur de texte approprié pour le développement de code Perl. Comme je l'ai déjà dit, n'importe quel éditeur de texte va faire l'affaire. Certains vont cependant préférer des outils plus complet, et donc une IDE plutôt qu'un simple éditeur.
Le projet Eclipse Perl Integration comblera vraisemblablement ce besoin. Ce projet consiste en une suite d'outils et de plugins qui complètent et étendent les fonctionnalités de l'environnement de développment Eclipse, développé à l'origine pour faire du développement Java.
Eclipse se défini comme suit :
Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.
Visitez le site d'Eclipse pour en savoir plus.
Cet environnement me semble un bon choix puisqu'il n'est pas limité à un seul langage : pas besoin de "réapprendre" son environnement de développement si on doit faire un projet dans un autre langage.
Par contre, pour faire un "quick-edit" sur un serveur Unix/Linux, apprendre ne serait-ce que la base de Vi/Vim est un must... :oP
Un script Perl peut être écrit dans n'importe quel éditeur de texte, du moment que ce soit un éditeur de texte, et non un logiciel de traitement de texte.
Il n'existe pas vraiment d'éditeur aussi complet qu'un JBuilder pour Perl, mais il y en a qui s'en approche beaucoup.
Un bon point de départ pour trouver des éditeurs "Perl Friendly" se trouve sur Perl.com
Cette liste date malheureusement un peu... A vu de nez, il me semble qu'il manque des logiciels qui ne font pas parti de la liste et qui sont très OK. Je sais que j'en ai de caché dans mon historique de conversation ICQ avec un ami, je vérifie lundi.
Dans ceux que je connais et qui sont bien, il y a Komodo, Editplus, Vim, Emacs/XEmacs, PerlEdit ( qui n'est pas pas dans la liste de Perl.com).
Le challenge est de trouver quel niveau on veux payer.
Il existe un bon nombre d'éditeurs/IDE de type shareware ou commercial, et évidemment un grand nombre d'outils OpenSource.
Personnellement, j'utilise Vim (un clone de vi), j'ai longtemps utilisé Xemacs ou Emacs. Ces éditeurs demandent un certains investissement de temps et d'énergie pour apprendre à les utiliser à leur plein potentiel (par exemple, Vim peu être configuré avec un interpréteur Perl intégré qui permet d'utiliser Perl pour manipuler du texte dans son éditeur (pas seulement du code Perl : n'importe quel texte).
Je vais chercher un peu plus et regarder ce qui existe pour faire de meilleures suggestions mardi.
Mais à la base, c'est simple : n'importe quel éditeur fait l'affaire...
Vous pourrez suivre les activités du cours sur ce site, tout au long de la session.
Bonne session!