| PERL(1) | Guide de référence des programmeurs en Perl | 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 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.
| 27 juillet 2025 | perl v5.40.1 |