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) :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 sub has { my ($a, $p) = @_; for(@$a) { return 1 if $_ eq $p; } return 0; }
Est-ce l'expression @{shift;} qui n'est pas correcte ? Merci de m'éclairer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 sub has { my (@a, $p) = (@{shift;}, shift); for(@a) { return 1 if $_ eq $p; } return 0; }
Partager