96 votes

Quel est le sens de @_ en Perl?

Quelle est la signification de @_ en Perl?

122voto

DVK Points 63282

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.

27voto

eckes Points 17277

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.

12voto

Piskvor Points 46986

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.

11voto

tchrist Points 47116

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.

5voto

aschepler Points 23731

Toutes les "variables spéciales" de Perl sont listées dans la page de documentation de perlvar .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X