Formation Perl - Formateur Perl

Formation de qualité par un spécialiste Perl

Sylvain Lhullier

Version 1.2.11
août 2013


Guide Perl - débuter et progresser en Perl

Dernière version sur  http://formation-perl.fr/guide-perl.html
© 2002-2013 Sylvain Lhullier - Permission est accordée de copier et distribuer ce document sans modification et à condition de fournir un lien vers la page http://formation-perl.fr/guide-perl.html

> Envie d'une formation Perl ? Sylvain Lhullier propose aussi des formations au langage Perl, contactez-le.

Introduction

Ce guide Perl sert de support à la formation Perl. C'est une introduction au langage initialement écrite pour Linux Magazine France et parus dans les numéros de juillet 2002 à février 2003 puis ré-édité au printemps 2004 dans les Dossiers Linux 2. Depuis, ce document est régulièrement mis à jour.

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

1. Premier pas
1.1. Exécuter un programme en Perl
1.2. Les types de données
1.3. La notion de contexte
2. Les scalaires
2.1. Les délimiteurs de chaînes de caractères
2.2. Déclaration et utilisation des variables
2.3. La valeur undef
2.4. Opérateurs, fonctions et contexte numériques
2.5. Opérateurs, fonctions et contexte de chaînes
2.6. Les opérateurs de test
3. Structures de contrôle
3.1. Les instructions de test
3.2. Les boucles
3.3. Un exemple
4. Listes et tableaux
4.1. Valeurs de listes
4.2. Manipulation de tableaux
4.3. Affectations
4.4. Multi-déclaration
4.5. Retour sur l'aplatissement des listes
4.6. Absorption d'une liste par un tableau
4.7. La structure de boucle foreach
4.8. Fonctions de manipulation de tableaux
4.9. L'opérateur qw
4.10. Joindre les éléments dans une chaîne avec join
4.11. Découper une chaîne de caractères en liste avec split
4.12. Trier une liste avec sort
4.13. Sélectionner des éléments avec grep
4.14. Appliquer un traitement à tous les éléments avec map
5. Écrire une fonction
5.1. Déclaration
5.2. Appel
5.3. Visibilité des variables
5.4. Une liste pour valeur de retour
5.5. Premier exemple de fonction
5.6. Autre exemple : une fonction récursive
5.7. Dernier exemple : le crible d'Ératosthène
6. Tables de hachage
6.1. Déclaration et initialisation
6.2. Accéder à un élément
6.3. Parcours
6.4. Autovivification
6.5. Existence et suppression d'une clef
6.6. Tables de hachage et listes
6.7. Exemples
6.8. Tranches de tableau
6.9. Tranches de table de hachage
7. Manipulation de fichiers
7.1. Opérateurs sur les noms de fichier
7.2. La fonction glob
7.3. Premiers exemples
7.4. Ouverture de fichier
7.5. Lecture, écriture et fermeture de fichier
7.6. Deuxième exemple
7.7. Exécution de commandes avec open
7.8. Écrire une table de hachage sur disque avec les fichiers DBM
8. Expressions régulières
8.1. Fonctionnalités
8.2. Bind
8.3. Caractères
8.4. Ensembles
8.5. Quantificateurs
8.6. Ensembles (suite)
8.7. Regroupement
8.8. Alternatives
8.9. Assertions
8.10. Références arrières
8.11. Variables définies
8.12. Valeurs de retour de m//
8.13. Exemples de problèmes
8.14. Solutions des problèmes
8.15. Choisir son séparateur
8.16. Options
8.17. Quantificateurs non-gourmands
8.18. Substitution de variables dans les motifs
8.19. Opérateur tr
8.20. Un dernier mot sur les expression régulières
9. Références
9.1. Références sur scalaire
9.2. Utilisation des références sur scalaire
9.3. Références sur tableau
9.4. Références sur table de hachage
9.5. Réflexions à propos des références
9.6. Références anonymes vers scalaire
9.7. Références anonymes vers tableau
9.8. Références anonymes vers table de hachage
9.9. Références anonymes diverses
9.10. L'opérateur ref
9.11. Références circulaires
9.12. Références sur fichiers
9.13. Références sur fonctions
9.14. Un dernier mot sur les références
10. Les modules
10.1. Utilisation d'un premier module
10.2. D'autres modules
10.3. Où trouver les modules ?
10.4. Écrire un premier module
10.5. Et les variables ?
10.6. De la dernière ligne d'un module
10.7. Répertoires
10.8. Blocs BEGIN et END
10.9. Introduction à l'export de symboles
10.10. Export par défaut de symboles
10.11. Export individuel de symboles
10.12. Export par tags de symboles
10.13. Exemple complet d'exports
10.14. Fonctions inaccessibles
10.15. Documentation des modules
10.16. Un dernier mot sur les modules
11. Programmation objet
11.1. Vous avez dit objet ?
11.2. Préparatifs
11.3. Écrire un constructeur
11.4. Appeler le constructeur
11.5. Manipulations de l'objet
11.6. Plusieurs constructeurs
11.7. Écrire une méthode
11.8. Reparlons des champs
11.9. Composition
11.10. Destruction d'un objet
11.11. Héritage
11.12. Classes d'un objet
11.13. Champs et méthodes statiques
11.14. Exemple complet

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 œuvre pour vos propres problèmes. Il n'est pas forcément facile d'exprimer son besoin en termes directement exploitables 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/

Spécialiste du langage Perl, Sylvain Lhullier propose des formations professionnelles dans le domaine de la programmation en Perl à destination des administrateurs systèmes comme des développeurs (http://formation-perl.fr/). Depuis 2000, il enseigne ce langage en universités et école d'ingénieurs. Il est également l'auteur de conférences et d'ateliers sur la prise en main et l'utilisation de Perl.

Membre de l'association de promotion du langage Perl en France "Les Mongueurs de Perl" (http://mongueurs.net/) depuis 2002, il a été le coordinateur du groupe de travail «Articles» qui a pour vocation d'aider à la publication d'articles sur Perl et les technologies connexes. Entre 2002 et 2004, il publie, avec l'aide de ce groupe de travail, une série de 7 articles dans Linux Magazine France sur le langage Perl. L'auteur remercie les autres membres de l'association pour les corrections effectuées.


Contact © 1999-2014 formation-perl.fr
Formation Perl - Formation Perl intra entreprise - Formation Perl inter entreprise - Formateur Perl - Formateur Perl délégation
Formation Perl Formateur Perl Appartement à louer à Noisy-le-Grand Bric-à-Brac