Copyright © 2002-2003 Sylvain Lhullier
Version 1.0.5 21 novembre 2004
Vous trouverez le dernière version de ce document à cette adresse : http://sylvain.lhullier.org/publications/perl.html Ce document est y disponible en version HTML, PDF et sources DocBook.
Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Foundation. Pas de section inaltérable. Pas de texte de première page de couverture. Pas de texte de dernière page de couverture.
Vous trouverez le texte officiel de la FDL à l'adresse : http://www.gnu.org/licenses/fdl.html
Une traduction non-officielle en français peut être lue à l'adresse : http://cesarx.free.fr/gfdlf.html
Introduction
Voici un cours introductif à la programmation en Perl. Il est issu de la série d'articles que j'ai écrits pour GNU/Linux & Hurd Magazine France entre juillet 2002 et février 2003.
Ce langage très riche et puissant est une boîte à outils fort utile dans de nombreuses situations : administration système, manipulation de textes (mail, logs, linguistique, génétique), programmation réseau (CGI, mod_perl, etc), bases de données, interfaces graphiques etc. Ses nombreuses bibliothèques le rendent vite irremplaçable aux yeux de ceux qui en acquièrent la maîtrise. La prise en main du langage est facilitée par de nombreux rapprochements possibles avec le C, le shell ou awk. Sa conformité POSIX en fait un allié indispensable à l'administrateur système.
Ce document a la délicate ambition de s'adresser à la fois au programmeur débutant et à celui qui connaîtrait bien le C ou le shell. Que le premier me pardonne de faire des comparaisons avec d'autres langages et de taire peut-être certains points qui me semblent évidents. Que le second m'excuse de passer à son goût trop de temps à expliquer des notions qui lui semblent simples ; les choses se corseront au fur et à mesure de la lecture ...
Le début du document aborde des notions importantes en Perl et nécessaires pour bien comprendre la suite. Vous serez sans doute un peu déçu de ne pas faire des choses extrêmement puissantes immédiatement, mais patience : qui veut aller loin ménage sa monture.
Pour vous mettre en appétit, voici un petit exemple de la concision de Perl et de sa puissance :
my @r = qw(Un programme Perl est 5 fois plus rapide a ecrire);
map { tr/A-Z/a-z/; s/\d//g; } @r;
foreach (sort grep !/^$/, @r) { print "$_\n"; }
|
Ce programme créé une liste de mots (la phrase de la première ligne), transforme les majuscules de ces mots en minuscules, supprime les chiffres appartenant aux mots, supprime les mots vides et affiche la liste des mots ainsi transformés dans l'ordre lexical. Et dites-vous que vous aurez en main toutes les notions nécessaires avant la fin de la lecture du document ...
Perl est un langage de haut niveau, qui a la prétention de combiner les avantages de plusieurs autres langages. Première facilité, il gère lui même la mémoire (ramasse-miettes, pas de limite de buffers, pas d'allocation à faire etc). De plus, les tableaux, les listes et les tables de hachage sont natifs, ils sont intégrés à la grammaire même du langage. Récursivité, modularité, programmation objet, accès au système et au réseau, interface avec le C, avec (g)Tk, avec Apache sont aussi au menu. Et souvenez-vous que l'une des devises de Perl est : there is more than one way to do it (il y a plus d'une façon de le faire).
Table des matières
Conclusion
Nous sommes ici au terme de ce cours introductif à la programmation en Perl. Vous avez maintenant en main la plupart des concepts et des notions pour être autonome en Perl.
N'oubliez pas que la documentation de Perl est très bien faite et est disponible sur votre ordinateur au moyen de la commande perldoc : perldoc perl vous donne accès à la liste des thèmes consultables avec perldoc. Par exemple perldoc perldata vous explique les structures de données en Perl. Pour une fonction particulière, utilisez l'option -f : perldoc -f chomp Pour un module particulier, utilisez perldoc sans option : perldoc Data::Dumper
Vous avez maintenant en main beaucoup de notions importantes de Perl. À vous de les mettre en oeuvre pour vos propres problèmes. Il n'est pas forcement facile d'exprimer son besoin en termes directement exploitable dans un langage particulier, mais en ayant un peu d'expérience de Perl, vous trouverez vite votre manière de résoudre un problème. Vous allez alors commencer à faire connaissance avec Tim Towtdi (There is more than one way to do it). ;-)
L'auteur
Sylvain Lhullier
<
>
http://sylvain.lhullier.org/
À l'Université de Marne-la-Vallée (http://www.univ-mlv.fr/), il est chargé chaque année d'un module complet d'enseignement en maîtrise informatique ; ce module porte sur des sujets tels que Perl, Perl/Tk, Perl/DBI, Apache, CGI/Perl et consiste en dix semaines d'un cours en amphithéatre et de trois travaux dirigés, ainsi qu'en un examen final et un projet.
Il a travaillé pour Linagora (http://www.linagora.com/) comme consultant formateur et développeur ; il intervenait principalement pour des projets et prestations concernant le développement (Perl, Java, C++, programmation système, PHP, Apache, MySQL, XML etc.).
Il a développé chez feue-Atrid des projets bâtis en Perl (LogTrend, Mioga) et publiés sous GPL.
Il a donné une conférence "Perl : pour quoi faire ?" lors du salon LinuxSolutions de janvier 2004.
Entre autres associations, il est membre et administrateur de l'association "Les Mongueurs de Perl" dont l'objet est de promouvoir le langage Perl en France par des réunions, des conférences etc (http://www.mongueurs.net/). Il y coordonne le groupe de travail "Articles" dont le but est de publier un article dans la presse francophone technique, notamment dans GNU/Linux & Hurd Magazine France (http://www.linuxmag-france.org/) chaque mois. L'auteur tient à remercier très chaleuseusement les autres membres de l'association pour leur aide, leur soutien et les relectures effectuées.