Comment utiliser le mot-clé" Mon " dans Perl?
je continue à voir le mot-clé" mon " devant les noms de variables dans les scripts Perl exemple en ligne, mais je n'ai aucune idée de ce que cela signifie. J'ai essayé de lire les pages de manuel et d'autres sites en ligne, mais j'ai de la difficulté à discerner ce que c'est, étant donné la différence entre la façon dont je le vois utilisé et le manuel.
par exemple, il est utilisé pour obtenir la longueur du tableau dans ce post: Trouver la taille d'un tableau en Perl
mais le manuel dit:
a my déclare que les variables énumérées sont locales (lexiquement) à la joindre un bloc, un fichier ou une évaluation. Si plus d'une valeur est inscrite, l' la liste doit être placé entre parenthèses.
Que fait-il et comment est-il utilisé?
3 réponses
my
restreint la portée d'une variable. La portée d'une variable est là où elle peut être vue. Réduire la portée d'une variable à l'endroit où elle est nécessaire est un aspect fondamental d'une bonne programmation. Il rend le code plus lisible et moins sujet aux erreurs, et se traduit par un grand nombre d'avantages dérivés.
si vous ne déclarez pas une variable en utilisant my
, une variable globale sera créée à la place. Cela doit être évité. Utiliser use strict;
indique à Perl que vous voulez être empêché de créer implicitement des variables globales, c'est pourquoi vous devez toujours utiliser use strict;
(et use warnings;
) dans vos programmes.
Liées à la lecture: Pourquoi utiliser use strict;
et use warnings;
?
résumé rapide: my
crée une nouvelle variable, local
modifie temporairement la valeur d'une variable
dans l'exemple ci-dessous, $::a se réfère à $A dans l'espace de noms 'global'.
$a = 3.14159;
{
my $a = 3;
print "In block, $a = $a\n";
print "In block, $::a = $::a\n";
}
print "Outside block, $a = $a\n";
print "Outside block, $::a = $::a\n";
# This outputs
In block, $a = 3
In block, $::a = 3.14159
Outside block, $a = 3.14159
Outside block, $::a = 3.14159
ie, local
change temporairement la valeur de la variable, mais seulement dans la portée où elle existe.
Source: http://www.perlmonks.org/?node_id=94007
mise à Jour
à propos de la différence entre our
et my
voir
(merci à ThisSuitIsBlackNot ).
Variables Privées via my() , est la première de la documentation pour les my
.
dans l'exemple de la taille du tableau que vous mentionnez, il n'est pas utilisé pour trouver la taille du tableau. Il est utilisé pour créer une nouvelle variable pour tenir la taille du tableau.