Documentation Perl
perl – Language pratique d’extraction et de rapport (Practical Extraction and Report Language)
SYNOPSIS
perl [-sTuU] [-hv][-V[:configvar]] [-cw][-d[:debugger]][-D[number/list]] [-pna][-Fpattern][-l[octal]][-0[octal]] [-Idir][m[-]module][-M[-]’module…’] [-P] [-S] [-x[dir]] [-i[extension]] [-e’command’][–][programfile][argument]…
Pour en simplifier l’accès, le manuel Perl a été scindé en plusieurs sections :
perl Vue d’ensemble (cette section) perldelta Changements par rapport à la version précédente perlfaq Les questions souvent posées (Foire Aux Questions) perltoc Table des matières de la documentation Perl
perldata Structures de données perlsyn Syntaxe perlop Opérateurs et précédence perlre Expressions régulières perlrun Invocation de Perl et ses arguments perlfunc Fonctions prédéfinies de Perl perlvar Variables prédéfinies en Perl perlsub Utilisation des sous-programmes perlmod Modules Perl : comment ça marche perlmodlib Modules Perl : comment en créer et les utiliser perlmodinstall Modules Perl : comment les installer à partir du CPAN perlform Utilisation des formats perllocale Support des définitions locales
perlref Références en Perl perldsc Introduction aux structures de données en Perl perllol Structures de données en Perl : listes de listes perltoot Programmation orientée objet en Perl : apprentissage perlobj Objets en Perl perltie Objets cachés derrière de simples variables perlbot Programmation orientée objet: astuces et exemples perlipc Communication interprocessus
perldebug Debugger en Perl perldiag Messages de diagnostique de Perl perlsec Perl et la sécurité
perltrap Pièges de Perl pour les imprudents perlport Guide de portabilité Perl perlstyle Guide de style Perl
perlpod Format des documentations Perl perlbook Livres parlant de Perl
perlembed Utiliser Perl dans vos programmes en C ou C++ perlapio Interface d’abstraction des E/S internes à Perl perlxs Interface de programmation des extensions à Perl perlxstut Perl XS : Apprentissage perlguts Fonctions internes pour les créateurs d’extensions perlcall Convention de nommage des fonctions Perl en C
perlhist Le glorieux passé de Perl
(Si vous essayez de lire l’ensemble des sections d’une traite, l’ordre indiqué tendra à réduire le nombre de référence en avant.)
Par défaut, toutes les sections citées précédement sont installées dans le répertoire /usr/local/man/fr/.
De la documentation supplémentaire sur les modules Perl est disponible. Par défaut, elle est installée dans le répertoire /usr/local/lib/perl5/man ou dans le sous-répertoire man du répertoire de librairie Perl. Certains de ces documents supplémentaires sont livrés en standard avec Perl, mais vous y trouverez aussi la documentation des modules provenant d’autres sources.
Vous devez être en mesure de lire la documentation perl avec la commande man(1) en ajoutant le répertoire man dans le fichier de démarrage adéquat, ou en modifiant la variable d’environnement MANPATH. Pour savoir où sont installées les pages de manuel, tapez :
perl -V:man.dir
Si les répertoires ont un ancêtre commun, par exemple /usr/local/man/man1 et /usr/local/man/man3, il suffit de rajouter cet ancêtre (/usr/local/man) dans le fichier de configuration de man(1) ou dans la variable MANPATH. Si ce n’est pas le cas, vous devrez alors tous les rajouter.
Si ça ne marche pas pour une raison quelconque, vous pouvez toujours utiliser le script perldoc fourni pour lire les documentations des modules. Vous pourriez aussi chercher un programme de remplacement à man(1).
Si votre programme a un comportement étrange et que vous ne savez pas où se trouve le problème alors demander à Perl de vous aider, utiliser l’option -w. Très souvent Perl vous indiquera l’endroit exact où se trouve le problème.
DESCRIPTION
Perl est un langage optimisé pour extraire des informations de fichiers textes et imprimer des rapports basés sur ces informations. C’est aussi un bon langage pour de nombreuses taches d’administration système. Il est écrit dans le but d’être pratique (simple à utiliser, efficace, complet) plutôt que beau (petit, élégant, minimaliste).
Le Perl combine (du point de vue de l’auteur) les meilleures fonctionnalités de C, sed, awk et sh, de telle manière que les personnes familiarisées à ces langages ne devraient avoir aucune difficulté avec celui-ci. (Les historiens pourront noter quelques vestiges de csh, Pascal, et même de BASIC-PLUS). La syntaxe se rapproche presque totalement de celle du C. Contrairement à la plupart des utilitaires Unix, Perl ne limite pas arbitrairement la taille des données – si vous avez assez de mémoire, Perl peut remplir une chaine de caractères avec le contenu total d’un fichier. Il n’y a pas de niveau maximum à la récursivité. Et les tables utilisées par les tableaux de hachage (anciennement appellé « tableaux associatifs ») croissent dès que nécessaire afin de garantir un bon niveau de performance. Perl utilise des techniques sophistiquées de recherche de motif pour pouvoir traiter très rapidement de très grandes quantités de données. Bien qu’optimisé pour le traitement des fichiers textes, Perl peut aussi traiter des données binaires, et faire que des fichiers dbm soit vus commes des tableaux de hachage. Les scripts Perl ayant leurs setuid bits positionnés sont plus sûrs que des programmes C grâce à des mécanismes de suivi de flot de données qui permettent d’éviter de nombreux trous de securités particulièrement stupides.
Si vous avez un problème pour lequel vous auriez utilisé sed, awk ou sh, mais qui depasse leurs capacités ou qui doit fonctionner un peu plus rapidement et que vous ne voulez pas l’écrire en C, alors le Perl est pour vous. Il existe aussi des convertisseurs pouvant transformer vos scripts sed et awk en scripts Perl.Mais il y a beaucoup plus…La version 5 de Perl constitue une réécriture presque complète, et introduit les fonctionnalités suivantes :
– De nombreuses améliorations à l’utilisation Il est maintenant possible d’écrire du code Perl nettement plus lisible (même dans les expressions régulières). Les variables absconses peuvent être remplacées par des identificateurs plus compréhensibles. Les messages d’erreurs sont plus detaillés, et les messages optionnels d’avertissements devraient indiquer une grande majorité des erreurs peuvant être commises par un novice. On ne le dira jamais assez, mais lorsque vous obtenez un comportement erratique, essayez de lancer votre script avec le modificateur -w!!! De toutes manières, même si n’avez pas de comportement erratique, essayez d’utiliser le modificateur -w. – Une grammaire simplifiée La taille de la nouvelle grammaire yacc fait environ la moitié de la précédente. Un très grand nombre de règles arbitraires ont été régularisées. Le nombre des mots réservés a été réduit de plus de 2/3. Malgré celà, presque tous les anciens scripts Perl fonctionnent sans aucun changement. – Portée lexicale Les variables Perl peuvent maintenant être déclarées à l’interieur d’une portée lexicale, de la même manière que les variables « auto » en C. Non seulement, c’est plus efficace, mais çà contribue à une plus grande sécurité pour la programmation de code réutilisable. Les routines anonymes disposent ainsi d’un couplage fort des variables locales. – Structure de données performantes N’importe quelle variable scalaire, y compris un élément de tableau, peut maintenant contenir une référence vers une autre variable ou une routine. Il devient simple de créer des variables et routines anonymes. Perl gère pour vous les compteurs de référence. – Modularité et réutilisabilité La bibliothèque Perl est maintenant constituée de modules qui peuvent être partagés facilement entre plusieurs paquetages. Un paquetage peut choisir d’importer tout ou parties de l’interface publiée d’un module. Les pragmas (directives de compilation) sont définis et utilisés par le même mécanisme. – Programmation orientée objet Un paquetage peut fonctionner comme un classe. L’héritage multiple dynamique et les méthodes virtuelles sont supportées de manière très directe et n’introduisent que peu de changement syntaxiques. Les descripteurs de fichier sont maintenant gérés comme des objets. – Intégrable et extensible Perl peut maintenant être intégré simplement dans vos applications en C ou C++, et peut indifférement appeler ou être appelé par vos routines à travers une interface documentée. Le préprocesseur XS fourni facilite l’intégration de routines en C ou C++ dans une application Perl. Le chargement dynamique de module est supporté, et Perl lui-même peut être transformé en une librairie dynamique. – Conforme POSIX Un apport majeur est la création du module POSIX, qui fournit l’accès à toutes les routines et définitions POSIX, au travers de classes d’objets lorsque c’est approprié. – Constructeurs et destructeurs de paquetage Les nouveaux blocs BEGIN et END sont exécutés lorsque la compilation du paquetage s’achève et juste à la sortie du programme. Ils peuvent être utilisés dans un mode dégradé correspondant à celui du awk en utilisant les modificateurs -p ou -n. – De multiples implémentations de DBM en simultané Un script Perl peut maintenant accèder à des fichiers DBM, NDBM, SDBM, GDBM et Berkeley DB simultanément. En fait, l’ancienne interface dbmopen a été généralisée pour permettre à n’importe quelle variable d’être rattachée à une classe d’objet définissant ses propres méthodes d’accès. – Les définitions des routines peuvent desormais être chargées automatiquement En fait, le mécanisme AUTOLOAD vous permet aussi de définir n’importe quelle sémantique arbitraire pour l’appel de routines indéfinies. Ce n’est pas seulement du chargement automatique. – Amélioration des expressions régulières Vous pouvez maintenant spécifier des quantificateurs qui ne soit pas avides. Il est aussi possible de faire des regroupements sans créer de références. Tout comme vous pouvez ajouter des espacements et des commentaires dans les expressions régulières. Un mécanisme conséquent permettant d’étendre les capacités des expressions régulières a été ajouté mais reste presque entièrement compatible. – Une pléthore de modules disponibles Le CPAN (Comprehensive Perl Archive Network ou Réseau d’archives détaillées de Perl) décrit dans la page de manuel le manuel perlmodlib contient des centaines de modules prêts à l’emploi fournissant une quantité astronomique de code réutilisable. Vous trouverez le site miroir le plus proche de chez vous à l’adresse : http://www.perl.com/CPAN. – Compilateur Bien qu’il ne soit pas encore en production, il existe un compilateur Perl-vers-C qui fonctionne. Il peut générer un byte code (code objet) portable, du simple C ou bien du code C optimisé.
D’accord, j’en fini avec le battage publicitaire de Perl.