SELFHTML/Quickbar  CGI/Perl  Éléments de langage Perl


Variables prédéfinies en Perl

Cette page est un document avec du texte et des informations

 Généralités sur les variables prédéfinies
 Variables scalaires simples prédéfinies
 Listes et listes associatives prédéfinies
 Variables d'environnement propres à Perl

 

Généralités sur les variables prédéfinies

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.

 

Variables scalaires simples prédéfinies

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  expression régulière la valeur correspondant au modèle de recherche. $phrase = "homme et femme";
$phrase =~ /\bet\b.*/;
print $&;
$+ contient après l'utilisation d'une  expression régulière avec parenthèses le contenu des parenthèses correspondant au dernier modèle de recherche. $phrase = "homme et femme";
$phrase =~ /(\bet\b).*/;
print $+;
$1, $2, etc. contient après l'utilisation d'une  expression régulière avec parenthèses les valeurs des parenthèses 1, 2 etc. correspondant au modèle de recherche défini dans les parenthèses respectives. $phrase = "homme et femme et enfant";
$phrase =~ /(\bet\b).*\1/;
print $1;

 

 

Listes et listes associatives prédéfinies

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  sous-programme. Dans le sous programme les paramètres transmis peuvent être adressés avec $_[0] (= premier paramètre), $_[1] (= deuxième paramètre) etc. &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"; }

 

 

Variables d'environnement propres à Perl

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: Instructions conditionnelles
avant: Variables et types de données
 

SELFHTML/Quickbar  CGI/Perl  Éléments de langage Perl

© 1998 Stefan Münz / © 2001 Traduction  Serge François, 13405@free.fr