© 2002-2004 - Sylvain Lhullier
Le document mis à disposition ici est une syntèse des articles que
j'ai écrits pour
Linux Magazine-France
et parus dans les numéro de juillet-août 2002, septembre 2002, octobre 2002,
novembre 2002, décembre 2002, janvier 2003, février 2003,
ainsi que dans les Dossiers Linux 2 d'avril/mai/juin 2004.
Perl est un langage très riche et puissant ; c'est une boîte à
outils fort utile dans de nombreuses situations : administration
système, manipulation de textes (courriels,
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.
Voici le sommaire :
- Accueil
- Introduction
- 1. Premiers 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
- 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
- 6. Autres fonctions sur les listes
- 6.1. Joindre les éléments dans une chaîne avec join
- 6.2. Découper une chaîne de caractères en liste avec split
- 6.3. Trier une liste avec sort
- 6.4. Sélectionner des éléments avec grep
- 6.5. Appliquer un traitement à tous les éléments avec map
- 6.6. Un exemple : le crible d'Ératosthène
- 7. Tables de hachage
- 7.1. Déclaration et initialisation
- 7.2. Accéder à un élément
- 7.3. Parcours
- 7.4. Autovivification
- 7.5. Existence et suppression d'une clef
- 7.6. Tables de hachage et listes
- 7.7. Exemples
- 8. Tranches
- 8.1. Tranches de tableau
- 8.2. Tranches de table de hachage
- 9. Manipulation des fichiers
- 9.1. Opérateurs sur les noms de fichier
- 9.2. La fonction glob
- 9.3. Premiers exemples
- 9.4. Ouverture de fichier
- 9.5. Lecture, écriture et fermeture de fichier
- 9.6. Deuxième exemple
- 9.7. Exécution de commandes avec open
- 9.8. Écrire une table de hachage sur disque avec les fichiers DBM
- 10. Expressions régulières
- 10.1. Fonctionnalités
- 10.2. Bind
- 10.3. Caractères
- 10.4. Ensembles
- 10.5. Quantificateurs
- 10.6. Ensembles (suite)
- 10.7. Regroupement
- 10.8. Alternatives
- 10.9. Assertions
- 10.10. Références arrières
- 10.11. Variables définies
- 10.12. Valeurs de retour de m//
- 10.13. Exemples de problèmes
- 10.14. Solutions des problèmes
- 10.15. Choisir son séparateur
- 10.16. Options
- 10.17. Quantificateurs non-gourmands
- 10.18. Substitution de variables dans les motifs
- 10.19. Opérateur tr
- 10.20. Un dernier mot sur les expression régulières
- 11. Références
- 11.1. Références sur scalaire
- 11.2. Utilisation des références sur scalaire
- 11.3. Références sur tableau
- 11.4. Références sur table de hachage
- 11.5. Réflexions à propos des références
- 11.6. Références anonymes vers scalaire
- 11.7. Références anonymes vers tableau
- 11.8. Références anonymes vers table de hachage
- 11.9. Références anonymes diverses
- 11.10. L'opérateur ref
- 11.11. Références circulaires
- 11.12. Références sur fichiers
- 11.13. Références sur fonctions
- 11.14. Un dernier mot sur les références
- 12. Utilisation de modules
- 12.1. Utilisation d'un premier module
- 12.2. D'autres modules
- 12.3. Où trouver les modules ?
- 13. Écrire un module
- 13.1. Premier exemple
- 13.2. Et les variables ?
- 13.3. De la dernière ligne d'un module
- 13.4. Répertoires
- 13.5. Blocs BEGIN et END
- 13.6. Introduction à l'export de symboles
- 13.7. Export par défaut de symboles
- 13.8. Export individuel de symboles
- 13.9. Export par tags de symboles
- 13.10. Exemple complet d'exports
- 13.11. Fonctions inaccessibles
- 13.12. Documentation des modules
- 13.13. Un dernier mot sur les modules
- 14. Programmation objet
- 14.1. Vous avez dit objet ?
- 14.2. Préparatifs
- 14.3. Écrire un constructeur
- 14.4. Appeler le constructeur
- 14.5. Manipulations de l'objet
- 14.6. Plusieurs constructeurs
- 14.7. Écrire une méthode
- 14.8. Reparlons des champs
- 14.9. Composition
- 14.10. Destruction d'un objet
- 14.11. Héritage
- 14.12. Classes d'un objet
- 14.13. Champs et méthodes statiques
- 14.14. Exemple complet
- Conclusion
- L'auteur