PERL(1)

NOM
perl — L’interpréteur de langage Perl 5

SYNOPSIS
perl [ -sTtuUWX ]
        [ -hv ] [ -V[:variable_config] ]
        [ -cw ] [ -d[t][:débogueur] ] [ -D[chiffre/liste_chiffres] ]
        [ -pna ] [ -Fmotif ] [ -l[octal] ] [ -0[octal/hexadécimal] ]
        [ -Irépertoire ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ]
        [ -C [chiffre/liste_chiffres] ]
        [ -S ]
        [ -x[répertoire] ]
        [ -i[extension] ]
        [ [-e|-E] 'commande' ] [ -- ] [ fichier_programme ] [ argument ]...

Pour plus d’informations à propos de ces options, vous pouvez exécuter "perldoc perlrun".

OBTENIR DE L’AIDE
Le programme perldoc(1) permet d’accéder à toute la documentation qui accompagne Perl. Vous trouverez plus de documentation, des didacticiels et le support de la communauté en ligne à <https://www.perl.org/>.

Si vous débutez avec Perl, vous devriez commencer par exécuter "perldoc perlintro" qui constitue une introduction générale pour les débutants et fournit quelques informations d’arrière-plan pour vous aider à naviguer dans la documentation générale de Perl. Exécutez "perldoc perldoc" pour en apprendre plus sur ce que vous pouvez faire avec perldoc(1).

Pour en faciliter l’accès, le manuel de Perl a été divisé en plusieurs sections.

  Aperçu
    perl               Aperçu de Perl (cette section)
    perlintro          Introduction à Perl pour les débutants
    perlrun            Exécution de Perl et options
    perltoc            Table des matières de la documentation de Perl

  Didacticiels
    perlreftut         Brève introduction aux références de Perl
    perldsc            Introduction aux structures de données dans Perl
    perllol            Structures de données : tableaux de tableaux
    perlrequick        Démarrage rapide avec les expressions
                       rationnelles
    perlretut          Didacticiel sur les expressions rationnelles
                       dans Perl
    perlootut          Didacticiel sur Perl OO pour les débutants
    perlperf           Techniques de performance et d’optimisation
    perlstyle          Guide de style dans Perl
    perlcheat          Aide-mémoire de Perl
    perltrap           Les pièges de Perl pour les étourdis
    perldebtut         Didacticiel de débogage dans Perl

    perlfaq            Questions fréquemment posées à propos de Perl
      perlfaq1         Questions générales à propos de Perl
      perlfaq2         Obtenir et apprendre Perl
      perlfaq3         Outils de programmation
      perlfaq4         Manipulation de données
      perlfaq5         Fichiers et formats
      perlfaq6         Expressions rationnelles
      perlfaq7         Problèmes liés au langage Perl
      perlfaq8         Interactions avec le système
      perlfaq9         Programmation réseau

  Manuel de référence
    perlsyn            Syntaxe de Perl : déclarations, instructions,
                       commentaires
    perldata           Structures de données dans Perl
    perlop             Expressions dans Perl :
                       opérateurs, priorités, chaînes littérales
    perlsub            Sous-routines de Perl
    perlfunc           Fonctions intégrées à Perl
    perlopentut        Didacticiel de la
                       fonction open() de Perl
    perlpacktut        Didacticiel des fonctions pack() et
                       unpack() de Perl
    perlpod            Documentation de Perl au format POD
    perlpodspec        Spécification du format POD de Perl
    perldocstyle       Guide de
                       style de Perl pour la documentation de base
    perlpodstyle       Guide de style de Perl POD
    perldiag           Messages de diagnostic de Perl
    perldeprecation    Éléments obsolètes de Perl
    perllexwarn        Avertissements de Perl et leurs contrôles
    perldebug          Débogage de Perl
    perlvar            Variables prédéfinies dans Perl
    perlre             Les expressions rationnelles de Perl, la suite de
                       l’histoire
    perlrebackslash    Séquences à barres obliques inversées dans les
                       expressions rationnelles de Perl
    perlrecharclass    Classes de caractères
                       dans les expressions rationnelles de Perl
    perlreref          Référence rapide des expressions rationnelles
                       de Perl
    perlref            Références de Perl, la suite de l’histoire
    perlform           Formats dans Perl
    perlobj            Objets de Perl
    perltie            Objets de Perl cachés derrière de simples
                       variables
    perldbmfilter      Filtres DBM de Perl
    perlclass          Syntaxe des classes dans Perl
    perlipc            Communication interprocessus dans Perl
    perlfork           Informations à propos de la fonction fork()
    perlnumber         Sémantique des nombres dans Perl
    perlthrtut         Didacticiel sur les threads dans Perl
    perlport           Guide de portabilité de Perl
    perllocale         Prise en charge des paramètres régionaux
    perluniintro       Introduction à Unicode dans Perl
    perlunicode        Prise en charge d’Unicode dans Perl
    perlunicook        Livre de recettes Unicode dans Perl
    perlunifaq         Questions fréquemment posées (FAQ) à propos
                       d’Unicode dans Perl
    perluniprops       Index des propriétés Unicode dans Perl
    perlunitut         Didacticiel sur Unicode dans Perl
    perlebcdic         Remarques à propos de l’exécution de Perl
                       sur une plateforme EBCDIC

    perlsec            Sécurité dans Perl
    perlsecpolicy      Politique de gestion des rapports concernant
                       la sécurité dans Perl

    perlmod            Les modules de Perl : comment fonctionnent-ils ?
    perlmodlib         Les modules de Perl : comment les écrire
                       et les utiliser
    perlmodstyle       Les modules de Perl : comment les écrire
                       avec style
    perlmodinstall     Les modules de Perl : comment les installer
                       depuis CPAN
    perlnewmod         Les modules de Perl : préparer un nouveau module
                       pour sa distribution
    perlpragma         Les modules de Perl : écrire une directive
                       (pragma) de l’utilisateur

    perlutil           Utilitaires fournis avec la distribution de Perl
    perlfilter         Filtres de sources dans Perl
    perldtrace         Prise en charge de DTrace dans Perl

    perlglossary       Glossaire de Perl

  Fonctionnement interne et interface avec le langage C
    perlembed          Méthodes de Perl pour intégrer du code perl dans
                       votre application en C ou C++
    perldebguts        Méthodes et outils de débogage de Perl
    perlxstut          Didacticiel sur XS de Perl
    perlxs             Interface de programmation d’applications Perl XS
    perlxstypemap      Outils de conversion de types de Perl XS entre C
                       et Perl
    perlclib           Interaction avec les fonctions de la
                       bibliothèque C standard
    perlguts           Fonctions internes à Perl pour ceux qui écrivent
                       des extensions
    perlcall           Conventions d’invocation de Perl depuis C
    perlmroapi         Interface du greffon de résolution de méthode
    perlreapi          Interface du greffon des expressions rationnelles
    perlreguts         Fonctionnement interne du moteur d’expressions
    perlapi            Listage de l’API de Perl (généré automatiquement)
    perlintern         Fonctions internes de Perl (généré
                       automatiquement)
    perliol            API en C pour l’implémentation de Perl des
                       entrées/sorties en couches
    perlapio           Interface interne d’abstraction des
                       entrées/sorties de Perl
    perlhack           Guide des hackers de Perl
    perlsource         Guide de l’arborescence des sources de Perl
    perlinterp         Aperçu des sources de l’interpréteur de Perl et
                       son fonctionnement
    perlhacktut        Comment créer un patch simple en code C
    perlhacktips       Conseils pour le hacking du code C du cœur de
                       Perl
    perlpolicy         Politiques de développement de Perl
    perlgov            Règles de gouvernance de Perl
    perlgit            Utilisation de git avec le dépôt de Perl

  Historique
    perlhist           Éléments de l’histoire de Perl
    perldelta          Modifications de Perl depuis la version précédente
    perl5400delta      Modifications de Perl dans la version 5.40.0
    perl5382delta      Modifications de Perl dans la version 5.38.2
    perl5381delta      Modifications de Perl dans la version 5.38.1
    perl5380delta      Modifications de Perl dans la version 5.38.0
    perl5363delta      Modifications de Perl dans la version 5.36.3
    perl5362delta      Modifications de Perl dans la version 5.36.2
    perl5361delta      Modifications de Perl dans la version 5.36.1
    perl5360delta      Modifications de Perl dans la version 5.36.0
    perl5343delta      Modifications de Perl dans la version 5.34.3
    perl5342delta      Modifications de Perl dans la version 5.34.2
    perl5341delta      Modifications de Perl dans la version 5.34.1
    perl5340delta      Modifications de Perl dans la version 5.34.0
    perl5321delta      Modifications de Perl dans la version 5.32.1
    perl5320delta      Modifications de Perl dans la version 5.32.0
    perl5303delta      Modifications de Perl dans la version 5.30.3
    perl5302delta      Modifications de Perl dans la version 5.30.2
    perl5301delta      Modifications de Perl dans la version 5.30.1
    perl5300delta      Modifications de Perl dans la version 5.30.0
    perl5283delta      Modifications de Perl dans la version 5.28.3
    perl5282delta      Modifications de Perl dans la version 5.28.2
    perl5281delta      Modifications de Perl dans la version 5.28.1
    perl5280delta      Modifications de Perl dans la version 5.28.0
    perl5263delta      Modifications de Perl dans la version 5.26.3
    perl5262delta      Modifications de Perl dans la version 5.26.2
    perl5261delta      Modifications de Perl dans la version 5.26.1
    perl5260delta      Modifications de Perl dans la version 5.26.0
    perl5244delta      Modifications de Perl dans la version 5.24.4
    perl5243delta      Modifications de Perl dans la version 5.24.3
    perl5242delta      Modifications de Perl dans la version 5.24.2
    perl5241delta      Modifications de Perl dans la version 5.24.1
    perl5240delta      Modifications de Perl dans la version 5.24.0
    perl5224delta      Modifications de Perl dans la version 5.22.4
    perl5223delta      Modifications de Perl dans la version 5.22.3
    perl5222delta      Modifications de Perl dans la version 5.22.2
    perl5221delta      Modifications de Perl dans la version 5.22.1
    perl5220delta      Modifications de Perl dans la version 5.22.0
    perl5203delta      Modifications de Perl dans la version 5.20.3
    perl5202delta      Modifications de Perl dans la version 5.20.2
    perl5201delta      Modifications de Perl dans la version 5.20.1
    perl5200delta      Modifications de Perl dans la version 5.20.0
    perl5184delta      Modifications de Perl dans la version 5.18.4
    perl5182delta      Modifications de Perl dans la version 5.18.2
    perl5181delta      Modifications de Perl dans la version 5.18.1
    perl5180delta      Modifications de Perl dans la version 5.18.0
    perl5163delta      Modifications de Perl dans la version 5.16.3
    perl5162delta      Modifications de Perl dans la version 5.16.2
    perl5161delta      Modifications de Perl dans la version 5.16.1
    perl5160delta      Modifications de Perl dans la version 5.16.0
    perl5144delta      Modifications de Perl dans la version 5.14.4
    perl5143delta      Modifications de Perl dans la version 5.14.3
    perl5142delta      Modifications de Perl dans la version 5.14.2
    perl5141delta      Modifications de Perl dans la version 5.14.1
    perl5140delta      Modifications de Perl dans la version 5.14.0
    perl5125delta      Modifications de Perl dans la version 5.12.5
    perl5124delta      Modifications de Perl dans la version 5.12.4
    perl5123delta      Modifications de Perl dans la version 5.12.3
    perl5122delta      Modifications de Perl dans la version 5.12.2
    perl5121delta      Modifications de Perl dans la version 5.12.1
    perl5120delta      Modifications de Perl dans la version 5.12.0
    perl5101delta      Modifications de Perl dans la version 5.10.1
    perl5100delta      Modifications de Perl dans la version 5.10.0
    perl589delta       Modifications de Perl dans la version 5.8.9
    perl588delta       Modifications de Perl dans la version 5.8.8
    perl587delta       Modifications de Perl dans la version 5.8.7
    perl586delta       Modifications de Perl dans la version 5.8.6
    perl585delta       Modifications de Perl dans la version 5.8.5
    perl584delta       Modifications de Perl dans la version 5.8.4
    perl583delta       Modifications de Perl dans la version 5.8.3
    perl582delta       Modifications de Perl dans la version 5.8.2
    perl581delta       Modifications de Perl dans la version 5.8.1
    perl58delta        Modifications de Perl dans la version 5.8.0
    perl561delta       Modifications de Perl dans la version 5.6.1
    perl56delta        Modifications de Perl dans la version 5.6
    perl5005delta      Modifications de Perl dans la version 5.005
    perl5004delta      Modifications de Perl dans la version 5.004

  Divers
    perlbook           Informations à propos du livre de Perl
    perlcommunity      Informations à propos de la communauté Perl
    perldoc            Consulter la
                       documentation de Perl au format Pod
    perlexperiment     La liste des
                       fonctionnalités expérimentales de Perl
    perlartistic       Licence artistique de Perl
    perlgpl            GNU General Public License

  Spécificités liguistiques
    perlcn             Perl pour le chinois simplifié (en UTF-8)
    perljp             Perl pour le japonais (en EUC-JP)
    perlko             Perl pour le coréen (en EUC-KR)
    perltw             Perl pour le chinois traditionnel (en Big5)

  Spécificités liées à la plateforme
    perlaix            Notes pour Perl sous AIX
    perlamiga          Notes pour Perl sous AmigaOS
    perlandroid        Notes pour Perl sous Android
    perlbs2000         Notes pour Perl sous POSIX-BC BS2000
    perlcygwin         Notes pour Perl sous Cygwin
    perlfreebsd        Notes pour Perl sous FreeBSD
    perlhaiku          Notes pour Perl sous Haiku
    perlhpux           Notes pour Perl sous HP-UX
    perlhurd           Notes pour Perl sous Hurd
    perlirix           Notes pour Perl sous Irix
    perllinux          Notes pour Perl sous Linux
    perlmacosx         Notes pour Perl sous Mac OS X
    perlopenbsd        Notes pour Perl sous OpenBSD
    perlos2            Notes pour Perl sous OS/2
    perlos390          Notes pour Perl sous OS/390
    perlos400          Notes pour Perl sous OS/400
    perlplan9          Notes pour Perl sous Plan 9
    perlqnx            Notes pour Perl sous QNX
    perlriscos         Notes pour Perl sous RISC OS
    perlsolaris        Notes pour Perl sous Solaris
    perlsynology       Notes pour Perl sous Synology
    perltru64          Notes pour Perl sous Tru64
    perlvms            Notes pour Perl sous VMS
    perlvos            Notes pour Perl sous Stratus VOS
    perlwin32          Notes pour Perl sous Windows

  Mémorial des documents supprimés
    perlboot
    perlbot
    perlrepository
    perltodo
    perltooc
    perltoot

Sur les systèmes Debian, vous devez installer le paquet perl-doc qui contient la majorité de la documentation Perl standard et le programme perldoc(1).

Une documentation supplémentaire complète pour les modules de Perl est disponible, tant pour ceux distribués avec Perl que pour les modules tiers empaquetés ou installés localement.

Vous devriez pouvoir visualiser la documentation de Perl avec votre programme man(1) ou avec perldoc(1).

Certaines documentations ne sont pas disponibles sous forme de pages de manuel man(1) ; si une référence croisée n’est pas trouvée par man(1), tentez votre chance avec perldoc(1). perldoc(1) peut aussi vous donner un accès direct à la documentation des fonctions (à l’aide du commutateur -f). Utilisez la commande "perldoc --help" (ou "perldoc perldoc" ou "man perldoc") pour la liste des autres options utiles qu’offre perldoc(1).

En général, si votre programme quitte le droit chemin et adopte un comportement étrange, et si vous ne savez pas trop où trouver de l’aide, essayez de spécifier dans votre code les directives use strict et use warnings ; souvent, elles vous indiquerons exactement la source du problème.

DESCRIPTION
Perl signifie officiellement Practical Extraction and Report Language (langage pratique d’extraction et de génération de rapports), sauf quand ce n’est pas le cas.

Perl était à l’origine un langage optimisé pour l’analyse de fichiers texte arbitraires, l’extraction des informations de ces derniers et l’affichage de ces informations sous forme de rapports. Il évolua ensuite rapidement vers un langage adapté à de nombreuses tâches de gestion du système. Au fil des années, Perl est finalement devenu un langage de programmation à usage général. Il est largement utilisé dans tous les domaines de la programmation, depuis les commandes rapides en une ligne (« one-liners ») jusqu’au développement d’applications à grande échelle.

Le langage Perl est orienté vers la pratique (facilité d’utilisation, efficacité, complétude) plutôt que vers l’esthétique (concision, élégance, minimalisme). Il combine (c’est du moins l’opinion de l’auteur) certaines des meilleures fonctionnalités de sed(1), awk(1) et sh(1), ce qui en fait un langage familier et facile à utiliser pour les habitués d’Unix en leur permettant de trouver des solutions rapides à des problèmes épineux. Ses éléments de programmation à usage général prennent en charge les modèles de programmation procédurale, fonctionnelle et orientée objet, ce qui en fait un langage bien adapté pour le long terme aux projets majeurs, quel que soit votre point de vue sur le sujet.

Perl n’a pas oublié ses racines au fil des années, à savoir la manipulation de texte. Il se targue de proposer certaines des expressions rationnelles les plus puissantes jamais rencontrées et sa prise en charge du texte Unicode est de classe mondiale. Il gère aussi tous les types de texte structuré grâce à une collection exhaustive d’extensions. Ces bibliothèques, rassemblées dans le CPAN, fournissent des solutions clés en main pour un éventail impressionnant de problèmes. Lorsqu’elles n’ont pas elles-mêmes défini une norme, elles piochent parmi les meilleures de ces dernières, comme le fait Perl lui-même.

DISPONIBILITÉ
Perl est disponible pour la plupart des systèmes d’exploitation, y compris la quasi totalité des plateformes de style Unix. Voir « Plateformes prises en charge » dans perlport pour la liste complète.

ENVIRONNEMENT
Voir « ENVIRONNEMENT » dans perlrun.

AUTEUR
Larry Wall <larry@wall.org>, avec l’aide de nombreuses autres personnes.

Si vos récits de succès avec Perl et vos témoignages peuvent aider ceux qui veulent recommander l’utilisation de Perl dans les applications, ou si vous voulez simplement exprimer votre gratitude à Larry et aux développeurs de Perl, veuillez envoyer vos commentaires à perl-thanks@perl.org.

FICHIERS
 « @INC » emplacements des bibliothèques de Perl

« @INC » ci-avant fait référence à la variable intégrée de même nom ; voir perlvar pour plus d’informations.

VOIR AUSSI

<https://www.perl.org/>
    la page d’accueil de Perl

<https://www.perl.com/>
    articles à propos de Perl

<https://www.cpan.org/>
    la « Comprehensive Perl Archive »

<https://www.pm.org/>
    les « Perl Mongers »

DIAGNOSTICS
Utiliser la directive "use strict" permet de s’assurer que toutes les variables seront correctement déclarées et empêche toute utilisation inappropriée des fonctionnalités patrimoniales de Perl. Elle est activée par défaut dans la portée de la directive "use v5.12" (ou supérieure).

La directive "use warnings" produit de magnifiques diagnostics. Elle est activée par défaut si vous spécifiez "use v5.35" (ou supérieure). Il est aussi possible d’utiliser le commutateur -w mais son utilisation est normalement déconseillée, car il s’applique à l’ensemble du code Perl exécuté, y compris celui hors de votre contrôle.

Voir perldiag pour des explications à propos de tous les diagnostics de Perl. La directive "use diagnostics" fait automatiquement passer les erreurs et avertissements de Perl du format court au format long.

Les erreurs de compilation indiquent le numéro de la ligne où l’erreur s’est produite avec une indication du prochain symbole ou type de symbole qui devait être examiné (dans un script passé à Perl à l’aide de commutateurs -e, chaque -e compte pour une ligne).

Les scripts setuid ont des contraintes supplémentaires qui peuvent être à l’origine de messages d’erreur comme « Insecure dependency ». Voir perlsec.

Vous a-t-on déjà dit que vous devez absolument vous résoudre à utiliser la directive use warnings ?

BOGUES
Le comportement induit par la directive use warnings n'est pas obligatoire.

Perl est à la merci des définitions par votre machine de différentes opérations comme la conversion de type, atof(3) et la sortie en virgule flottante de sprintf(3).

Si votre stdio requiert un seek ou un eof entre lectures et écritures pour un flux particulier, ce sera aussi le cas pour Perl (ce qui ne s’applique pas à sysread() et syswrite()).

Bien qu’aucun type de données intégré ne possède de limite de taille arbitraire (si ce n’est la taille de la mémoire), il existe quand même quelques limites arbitraires : un nom de variable donnée ne peut pas excéder une longueur de 251 caractères. Les numéros de ligne affichés par les diagnostics sont stockés en interne sous forme d’entiers courts ; ils sont donc limités à un maximum de 65535 (un nombre supérieur fera en général l’objet d’un bouclage).

Vous pouvez soumettre vos rapports de bogue à <https://github.com/Perl/perl5/issues> (sans oublier d’inclure les informations de configuration en joignant la sortie du programme myconfig situé dans l’arborescence des sources de Perl ou de la commande « perl -V »).

Perl signifie en fait « Pathologically Eclectic Rubbish Lister » (Listeur de déchets pathologiquement éclectique), mais ne dites à personne que j’ai dit ça.

NOTES
La devise de Perl est « Il y a plusieurs manières d’y parvenir. ». Essayez de deviner ce nombre de manières à titre d’exercice.

Les trois principales vertus d’un programmeur sont la paresse, l’impatience et l’orgueil. Voir le Camel Book (livre « Programming Perl ») pour des explications.

TRADUCTION
La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.