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 |