Quelle est la signification de @_
en Perl?
Réponses
Trop de publicités?perldoc perlvar est le premier endroit à regarder pour tout spécial nommé Perl variable info.
Citant:
@_
: Dans une sous-routine du tableau@_
contient les paramètres passés à cette sous-routine.
Plus de détails peuvent être trouvés dans perldoc perlsub (sous-programmes de Perl) à partir de la perlvar:
Tous les arguments passés à afficher dans la tableau
@_
.Par conséquent, si vous appelez une fonction à deux arguments, ceux serait stocké dans
$_[0]
et$_[1]
.Le tableau
@_
est un local de tableau, mais ses les éléments sont des alias pour le scalaire paramètres. En particulier, si un élément $_[0] est mis à jour, le argument correspondant est mis à jour (ou une erreur se produit s'il n'est pas pouvant être mis à jour).Si un argument est un tableau ou élément de hachage qui n'existent pas lorsque la fonction a été appelée, qui l'élément est créé uniquement lorsque (et si) il est modifié ou une référence à il est prises. (Certaines versions précédentes de Perl créé l'élément de savoir si ou de ne pas le l'élément a été attribué.) L'affectation à l'ensemble du tableau @_ supprime que de l'aliasing, et ne met pas à jour les arguments.
Généralement, vous développez les paramètres transmis à un sous-utilisateur à l'aide de la variable @_
:
sub test{
my ($a, $b, $c) = @_;
...
}
# call the test sub with the parameters
test('alice', 'bob', 'charlie');
C’est ainsi que perlcritic prétend être correct.
Le premier résultat d'une recherche de perl @_
dit ceci :
@_ est la liste des paramètres entrants envoyés à un sous-traitant.
Il a également une explication plus longue et plus détaillée de la même chose.
La question était de savoir ce que @_
signifie en Perl. La réponse à cette question est que, dans la mesure où $_
cela signifie en Perl, @_
signifie De même , ils.
Personne ne semble avoir mentionné cet aspect critique de sa signification - ainsi que le leur .
Par conséquent, ils sont tous deux utilisés comme pronoms ou parfois comme topicalizer.
Ils ont généralement des antécédents nominaux, mais pas toujours.