D'une référence vers un tableau
Salut !
Tout à l'heure, je me suis amusé à coder un petit jeu de pendu en Perl et j'ai été confronté à un problème que je n'arrive pas à expliquer. Soit une routine has qui prend un tableau de lettres et un motif, et qui renvoie Vrai si ce motif est trouvé dans le tableau.
Voici la manière dont je l'ai codé (cela fonctionne) :
Code:
1 2 3 4 5 6 7 8
|
sub has {
my ($a, $p) = @_;
for(@$a) {
return 1 if $_ eq $p;
}
return 0;
} |
Rien de bien particulier ici. Seulement, mon premier jet était le suivant, et à ma grande surprise il fonctionnait très mal (comme s'il n'y avait qu'un seul élément dans @_) :
Code:
1 2 3 4 5 6 7 8
|
sub has {
my (@a, $p) = (@{shift;}, shift);
for(@a) {
return 1 if $_ eq $p;
}
return 0;
} |
Est-ce l'expression @{shift;} qui n'est pas correcte ? Merci de m'éclairer.