C'est très simple:
Tout sub (ie subroutine, bref, une fonction) en perl prend pour argument une liste
Si tu fais: win32_reg_read("SOFTWARE\\Net-SNMP","SNMPSHAREPATH" );
(on met plus de & devant un nom de sub depuis des plombes, sauf dans des cas très spéciaux)
tu appelles le sub win32_reg_read avec la liste d'arguments ("SOFTWARE\\Net-SNMP", "SNMPSHAREPATH" )
La liste d'arguments à un nom implicite: @_
donc dans l'exemple, tu as un appel de win32_reg_read avec @_ = ("SOFTWARE\\Net-SNMP", "SNMPSHAREPATH" )
faire shift sans argument a l'intérieur d'un sub, c'est le faire sur @_
bref, faire
my $sub_key = shift;
c'est faire
my $sub_key = shift @_;
ou shift a le sens habituel d'un shift sur une liste (fonction qui renvoie le premier argument de la liste, qu'il enlève de la liste)
après cet appel, $sub_key = "SOFTWARE\\Net-SNMP" et @_ = ("SNMPSHAREPATH" )
la ligne suivante faire
my $value = shift;
c'est faire
my $value = shift @_;
après cet appel, $value = "SNMPSHAREPATH" et @_ = ()
A+,
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --