NOM

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 :

D'accord, j'en fini avec le battage publicitaire de Perl.


ENVIRONMENT

Voir perlrun.


AUTHOR

Larry Wall <larry@wall.org>, aidé par des tas d'autres personnes.

Si vous désirez faire partager votre témoignage sur les succès remportés en utilisant Perl, aidant ainsi ceux qui voudraient recommander le Perl pour leurs applications, ou tout simplement si vous voulez exprimer votre gratitude à Larry et l'équipe de développement, alors écrivez s'il vous plait à <perl-thanks@perl.org>.


FILES

 "/tmp/perl-e$$" fichier temporaire pour les commandes -e
 "@INC"          emplacements des librairies Perl


SEE ALSO

 a2p  traducteur awk vers perl 

 s2p  traducteur sed vers perl


DIAGNOSTICS

Le modificateur -w génère de magnifiques diagnostiques.

Voir perldiag pour l'explication de tous ces diagnostiques. Le pragma use diagnostics oblige Perl à rendre ces messages plus verbeux.

En cas d'erreur de compilation le numéro de la ligne fautive est indiqué ainsi que l'emplacement approximatif du mot concerné. (Dans le cas de script utilisant le modificateur -e, chaque -e est compté comme une ligne.)

Les scripts en setuid ont des contraintes supplémentaires pouvant produire des messages d'erreur tel que ``Insecure dependency''. Voir la page de manuel perlsec.

Avons-nous mentionné que vous devriez vraiment penser à utiliser le modificateur -w?


BUGS

Le modificateur -w n'est pas obligatoire.

Perl est à la merci de la définition de plusieurs opérations telles que casting, atof(), et affichage des nombres flottants par sprintf() qui peuvent être différentes sur votre machine.

Si votre stdio nécessite un déplacement(seek) ou une fin de fichier(eof) entre les lectures et les écritures sur des flots de données particuliers, alors Perl les requièrent aussi. (Ceci ne s'applique pas à sysread() et syswrite().)

Il n'y a aucune limite en ce qui concerne la taille des types de données prédéfinies (à part la mémoire disponible) mais il existe toujours un petit nombre de limites arbitraires : un nom de variable ne peut dépasser 255 caractères, aucun composant de votre PATH ne doit être plus long que 255 caractères si vous utiliser le modificateur -S. Une expression régulière ne peut dépasser 32767 octets lors de sa compilation.

Si vous envoyez un rapport de bug (assurez-vous d'inclure toutes les informations sur la configuration obtenue par le programme myconfig fourni avec Perl, ou par perl -V) à <perlbug@perl.com>. Si vous avez réussi à compiler Perl, le script perlbug fourni dans le répertoire utils/ peut être utilisé pour envoyer un rapport de bug.

L'acronyme Perl signifie réellement Pathologically Eclectic Rubbish Lister, mais ne dites à personne que je vous ai dit ça.


NOTES

La devise de Perl est ``Il y a toujours plus d'une façon de le faire''. Devinez exactement combien de façon est laissée en guise d'exercice pour le lecteur.

Les trois grandes vertus du programmeur sont la paresse, l'impatience et l'orgueil. Reportez-vous au livre ``Programmation en Perl'' pour savoir pourquoi.


TRADUCTION

Marc Carmier <carmier@immortels.frmug.org>


RELECTURE

Pascal Ethvignot <pascal@encelade.frmug.org>