— d´ebuter et progresser en Perl —
Sylvain Lhullier
http://formation-perl.fr/
Version 1.2.4 - f´evrier 2012
http://formation-perl.fr/ Guide Perl c Sylvain Lhullier
Licence 7
Introduction 9
1 Premier pas 11
1.1 Ex´ecuter un programme en Perl . . . 11
1.2 Les types de donn´ees . . . 12
1.3 La notion de contexte . . . 13
2 Les scalaires 15 2.1 Les d´elimiteurs de chaˆınes de caract`eres . . . 15
2.2 D´eclaration et utilisation des variables . . . 16
2.3 La valeur undef. . . 16
2.4 Op´erateurs, fonctions et contexte num´eriques . . . 17
2.5 Op´erateurs, fonctions et contexte de chaˆınes . . . 17
2.6 Les op´erateurs de test . . . 18
3 Structures de contrˆole 21 3.1 Les instructions de test . . . 21
3.2 Les boucles . . . 23
3.3 Un exemple . . . 24
4 Listes et tableaux 27 4.1 Valeurs de listes . . . 27
4.2 Manipulation de tableaux . . . 28
4.3 Affectations . . . 29
4.4 Multi-d´eclaration . . . 30
4.5 Retour sur l’aplatissement des listes . . . 30
4.6 Absorption d’une liste par un tableau . . . 31
4.7 La structure de boucle foreach . . . 31
4.8 Fonctions de manipulation de tableaux . . . 32
4.9 L’op´erateur qw . . . 33
4.10 Joindre les ´el´ements dans une chaˆıne avec join . . . 34
http://formation-perl.fr/ Guide Perl c Sylvain Lhullier
5 Ecrire une fonction´ 37
5.1 D´eclaration . . . 37
5.2 Appel . . . 38
5.3 Visibilit´e des variables . . . 38
5.4 Une liste pour valeur de retour . . . 39
5.5 Premier exemple de fonction . . . 39
5.6 Autre exemple : une fonction r´ecursive . . . 40
5.7 Dernier exemple : le crible d’´Eratosth`ene . . . 40
6 Tables de hachage 43 6.1 D´eclaration et initialisation . . . 43
6.2 Acc´eder `a un ´el´ement . . . 44
6.3 Parcours . . . 45
6.4 Autovivification . . . 46
6.5 Existence et suppression d’une clef . . . 46
6.6 Tables de hachage et listes . . . 47
6.7 Exemples . . . 49
6.8 Tranches de tableau . . . 51
6.9 Tranches de table de hachage . . . 51
7 Manipulation de fichiers 53 7.1 Op´erateurs sur les noms de fichier . . . 53
7.2 La fonction glob . . . 54
7.3 Premiers exemples . . . 54
7.4 Ouverture de fichier . . . 55
7.5 Lecture, ´ecriture et fermeture de fichier . . . 56
7.6 Deuxi`eme exemple . . . 57
7.7 Ex´ecution de commandes avec open . . . 58
7.8 Ecrire une table de hachage sur disque avec les fichiers DBM . . . .´ 58
8 Expressions r´eguli`eres 61 8.1 Fonctionnalit´es . . . 61
8.2 Bind . . . 62
8.3 Caract`eres . . . 62
8.4 Ensembles . . . 63
8.5 Quantificateurs . . . 64
8.6 Ensembles (suite) . . . 64
8.7 Regroupement . . . 65
8.8 Alternatives . . . 65
8.9 Assertions . . . 65
8.10 R´ef´erences arri`eres . . . 66
8.11 Variables d´efinies . . . 66
8.12 Valeurs de retour de m// . . . 67
8.13 Exemples de probl`emes . . . 68
8.14 Solutions des probl`emes . . . 68
8.15 Choisir son s´eparateur . . . 70
8.16 Options . . . 71
8.17 Quantificateurs non-gourmands . . . 72
8.18 Substitution de variables dans les motifs . . . 73
8.19 Op´erateur tr . . . 73
8.20 Un dernier mot sur les expression r´eguli`eres . . . 74
9 R´ef´erences 75 9.1 R´ef´erences sur scalaire . . . 75
9.2 Utilisation des r´ef´erences sur scalaire . . . 76
9.3 R´ef´erences sur tableau . . . 77
9.4 R´ef´erences sur table de hachage . . . 79
9.5 R´eflexions `a propos des r´ef´erences . . . 80
9.6 R´ef´erences anonymes vers scalaire . . . 82
9.7 R´ef´erences anonymes vers tableau . . . 82
9.8 R´ef´erences anonymes vers table de hachage . . . 84
9.9 R´ef´erences anonymes diverses . . . 86
9.10 L’op´erateur ref . . . 88
9.11 R´ef´erences circulaires . . . 89
9.12 R´ef´erences sur fichiers . . . 91
9.13 R´ef´erences sur fonctions . . . 92
9.14 Un dernier mot sur les r´ef´erences . . . 92
10 Les modules 93 10.1 Utilisation d’un premier module . . . 93
10.2 D’autres modules . . . 94
10.3 O`u trouver les modules ? . . . 95
10.4 ´Ecrire un premier module . . . 96
10.5 Et les variables ? . . . 96
10.6 De la derni`ere ligne d’un module . . . 97
10.7 R´epertoires . . . 98
10.8 BlocsBEGIN etEND . . . 98
10.9 Introduction `a l’export de symboles . . . 99
10.10Export par d´efaut de symboles . . . 100
10.11Export individuel de symboles . . . 100
10.12Export par tags de symboles . . . 101
10.13Exemple complet d’exports . . . 102
10.14Fonctions inaccessibles . . . 103
10.15Documentation des modules . . . 103
10.16Un dernier mot sur les modules . . . 105
11 Programmation objet 107 11.1 Vous avez dit objet ? . . . 107
11.2 Pr´eparatifs . . . 108
11.3 ´Ecrire un constructeur . . . 108