SELFHTML/Quickbar
CGI/Perl
Éléments de langage Perl
![]() |
Variables prédéfinies en Perl |
![]() |
|
![]() |
Perl tient à disposition une quantité de variables spéciales prédéfinies. Vous pouvez lire le contenu des ces variables pour rechercher des informations sur la configuration actuelle de Perl ou sur la configuration système de l'ordinateur sur lequel le script et l'interpréteur Perl tournent. Quelques unes de ces variables ont des contenus déterminés selon la situation de la procédure. Vous ne devez utiliser ces possibilités que lorsque vous connaissez bien Perl.
![]() ![]() |
La liste suivante n'est pas complète mais contient simplement quelques variables scalaires simples prédéfinies importantes.
variable scalaire simple | explication | exemple |
---|---|---|
$_ | la plus connue des variables prédéfinies en Perl. Elle contient dans des processus de recherche (par exemple pour la recherche dans une liste) la valeur actuelle respective. Elle peut être intégrée directement dans la recherche sans que vous ayez besoin de définir vous même une variable. L'exemple ci-contre sort simplement dans l'ordre tous les chiffres ayant été définis dans la liste @nombres. | @nombres = (1..10); for(@nombres) { print $_, "\n"; } |
$. | contient le numéro de ligne actuel du dernier fichier consulté. Dans l'exemple ci-contre toutes les lignes d'un fichier texte sont lues et sorties. À la fin, $. peut renseigner sur le nombre de lignes ayant été lues. | open(fichier, "<readme.txt"); while(<fichier>) { print $_; } print $., " lignes lues"; close(fichier); |
$/ | contient le séparateur de saisie fixé. peut être modifié - même plusieurs signes sont permis. L'exemple ci-contre fait en sorte que la saisie du périphérique de saisie standard ne sera close que si l'utilisateur entre la chaîne de caractères FIN et presse la touche <Entrée>. |
$/ = "FIN"; $tonnom = <STDIN>; print $tonnom; |
$] | contient le numéro de version de l'interpréteur Perl utilisé. Bien approprié pour, lors de l'exécution de scripts, faire dépendre l'exécution du reste du code programme du fait que l'interpréteur Perl ait au moins un certain numéro de version. |
if($] < 5) { "interpréteur Perl trop ancien" ; } else { print $]; } |
$! | contient un message d'erreur actuel ou un code d'erreur dans le contexte du programme actuel dans la mesure ou une erreur est survenue. L'instruction ci-contre essaie d'ouvrir un fichier et donne en cas d'erreur le message d'erreur Perl prédéfini quand le fichier ne peut pas être ouvert. | open(fichier, "<pasla.txt") || print $!; |
$0 | contient le nom de script Perl en cours d'exécution. La valeur peut être changée. | print $0, " est exécuté!"; |
$$ | contient le numéro ID du processus du script Perl en cours d'exécution. Intéressant avant tout sous Unix. | "processus ", $$, " est exécuté!"; |
$^T | contient l'instant précis (millièmes de secondes) auquel le script a été démarré. L'exemple ci-contre représente un petit test de banc d'essai. Il exécute une longue boucle de calculs et recherche combien de temps il a fallu au script Perl pour les faire. | @nombres = (1..50000); for(@nombres) { $x = sqrt($_); } $Start = $^T; $maintenant = time; print "temps passé: ", $maintenant - $Start, " ms\n"; |
$& | contient après
l'utilisation d'une ![]() |
$phrase = "homme et femme"; $phrase =~ /\bet\b.*/; print $&; |
$+ | contient après
l'utilisation d'une ![]() |
$phrase = "homme et femme"; $phrase =~ /(\bet\b).*/; print $+; |
$1, $2, etc. | contient après
l'utilisation d'une ![]() |
$phrase = "homme et femme
et enfant"; $phrase =~ /(\bet\b).*\1/; print $1; |
![]() ![]() |
La liste suivante n'est pas complète mais contient simplement quelques listes et listes associatives prédéfinies importantes.
liste/hash | explication | exemple |
---|---|---|
@_ | contient les paramètres qui ont
été transmis à l'appel d'un ![]() |
&dis("Hello monde"); sub dis { print $_[0]; } |
@ARGV | contient les paramètres qui ont été transmis à l'appel du script Perl. si par exemple perl test.pl montexte.txt a été saisi, montexte.txt est le premier paramètre pour le script Perl. Le script peut évaluer comme entrées pour le déroulement du programme. Dans l'exemple ci-contre le premier paramètre transmis $ARGV[0] est interprété comme nom de fichier. Le script essaie d'ouvrir ce fichier. | open(fichier, "<$ARGV[0]") || die "erreur!"; print $ARGV[0], " ouvert!"; close(fichier); |
%ENV | contient l'environnement complet de l'ordinateur tel qu'il est connu de l'interpréteur Perl (pilotes chargés, programmes système etc.). L'exemple ci-contre sort les éléments sauvegardés dans ce hash. |
for(%ENV) { print $_, "\n"; } |
![]() ![]() |
Perl utilise des variables d'environnement avant tout pour désigner à l'interpréteur Perl certains répertoires de recherche. La liste suivante n'est pas complète mais contient simplement quelques variables d'environnement prédéfinies importantes. Vous pouvez demander le contenu de variables d'environnement avec une instruction comme $valeur = $ENV{'PATH'};. L'important pour le faire est d'utiliser $ENV{'nomvariable'} - le nom de la variable doit être placé entre parenthèses accolades et figurer entre apostrophes.
variable | explication |
---|---|
HOME | contient le répertoire auquel il faut sauter si l'instruction chdir ne contient pas de paramètres (typique à Unix) |
PATH | contient le chemin complet, c'est à dire tous les répertoires dans lesquels il faut rechercher des programmes exécutables. Est utilisé par Perl quand à partir d'un script Perl sont appelés d'autres scripts Perl dont la situation n'est pas précisée. |
![]() | |
après:![]() |
![]() |
avant:![]() |
![]() |
SELFHTML/Quickbar
CGI/Perl
Éléments de langage Perl
Serge François, 13405@free.fr