[debutant] récupération des paramètres dans une fonction
3 réponses
Ben
Bonjour à tous,
je n'arrive pas à bien récupérer les arguments d'une fonction.
Par exemple :
my @tab1 = ( 1,2,3);
my @tab2 = ("a","b","c");
fonction_de_test(@tab1,@tab2);
sub fonction_de_test {
my @tab_arg = @_;
my @tab_1 = shift(@tab_arg);
my @tab_2 = shift(@tab_arg);
}
Ca ne sera une surprise pour personne si je dis que
@tab_1 est différent de @tab1
idem pour tab 2
Donc, ce que je voudrais, c'est savoir comment faire pour passer et
récupérer les
arguments à des fonctions, que ce soit des bêtes variable, des tableaux, des
hash..Etc
et les récupérer facilement...
"Jean-Michel Hiver" a écrit dans le message de news: 3fd620b0$0$19373$
Bonjour à tous, je n'arrive pas à bien récupérer les arguments d'une fonction.
Par exemple :
my @tab1 = ( 1,2,3); my @tab2 = ("a","b","c"); fonction_de_test(@tab1,@tab2);
Si tu fais ca, c'est comme si tu passais une liste (1,2,3,"a","b","c").
En effet en Perl tu peux ecrire @liste = (@sous_liste1, @sous_liste2);
Il te faut invoquer la fonction en passant la liste par reference plutot que par valeur, i.e.
fonction_de_test (@tab1, @tab2);
sub fonction_de_test { my @tab_arg = @_; my @tab_1 = shift(@tab_arg); my @tab_2 = shift(@tab_arg); }
Ca deviendrait:
sub fonction_de_test { my ($tab_ref_1, $tab_ref_2) = @_; my @tab_1 = @{$tab_ref_1}; my @tab_2 = @{$tab_ref_2}; }
Laurent Wacrenier
Ben écrit:
Donc, ce que je voudrais, c'est savoir comment faire pour passer et récupérer les arguments à des fonctions, que ce soit des bêtes variable, des tableaux, des hash..Etc et les récupérer facilement...
Utilise des prototypes (perldoc perlsub)
sub fonction_de_test(@@) { my @tab_1 = @{$_[0]}; my @tab_2 = @{$_[1]}; print $tab_1[0], $tab_2[0], "n"; }
my @tab1 = ( 1,2,3); my @tab2 = ("a","b","c"); fonction_de_test(@tab1, @tab2) ;
Ben <bjolivot@secuserve.com> écrit:
Donc, ce que je voudrais, c'est savoir comment faire pour passer et
récupérer les
arguments à des fonctions, que ce soit des bêtes variable, des tableaux, des
hash..Etc
et les récupérer facilement...
Utilise des prototypes (perldoc perlsub)
sub fonction_de_test(@@) {
my @tab_1 = @{$_[0]};
my @tab_2 = @{$_[1]};
print $tab_1[0], $tab_2[0], "n";
}
my @tab1 = ( 1,2,3);
my @tab2 = ("a","b","c");
fonction_de_test(@tab1, @tab2) ;
Donc, ce que je voudrais, c'est savoir comment faire pour passer et récupérer les arguments à des fonctions, que ce soit des bêtes variable, des tableaux, des hash..Etc et les récupérer facilement...
Utilise des prototypes (perldoc perlsub)
sub fonction_de_test(@@) { my @tab_1 = @{$_[0]}; my @tab_2 = @{$_[1]}; print $tab_1[0], $tab_2[0], "n"; }
my @tab1 = ( 1,2,3); my @tab2 = ("a","b","c"); fonction_de_test(@tab1, @tab2) ;