Tu fais un
foreach my $value (@reftemp) {
}
d'ou ton erreur, car alors, c'est sur $value que doit porter le chomp (il est peut être inutile à cet endroit, il est la pour virer les \n en fin de ligne et devrait se trouver la ou tu lis le fichier).
donc il faudrait faire chomp $value; et pareil pour le reste.
Si on fait un
foreach (@reftemp) {
}
c'est implicitement équivalent à
foreach my $_ (@reftemp) {
}
pareil, un chomp; signifie en fait chomp $_;
idem pour le split, split /:/; signifie implicitement split /:/, $_;
Pour le map, c'est plus rusé.
s/\s*$//; ça applique le transformation à $_
et ce que fait le map, c'est d'assigner (récursivement) l'élément courant du tableau à $_ (et non pas une copie de valeur), puis appliquer le bloc: donc le bloc étant {s/\s*$//}, on applique s/\s*$// à $_, donc (successivement) à chaque élément du tableau.
Bon, tu as toutes les billes.
A+,
Message édité par gilou le 13-09-2012 à 14:31:18
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --