Hello à tous,
Dans le cadre d'une petite modification d'un script existant, je suis revenu qql années en arrière le temps d'une après-midi pour me remettre au perl.
Je dois avouer que je suis un peu rouillé et qu'après qql heures de luttes, je touche au but mais un point reste obscur.
Le code incriminé
et l'appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 sub checkTop { my ($m,@top) = @_ ; my $v ; if (/\*\*\*(.*)\*\*\*/,$m) { my $v = $1 ; print $v ; if (/$v/,@top) { return $m . '[TOP]' ; } } }
@tm contient une lecture d'un fichier contenant des noms précis et @count le résultat d'un traitement extérieur mais ca reste une liste. Le principe étant de filter la liste générale (@count) en mettant en avant les noms précis que l'on peut retrouver à l'intérieur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 map(checkTop($_,@tm),@count) ;
Je recup donc dans ma fonction, sur chaque itération, le contenu entre *** et ***, qui est suceptible d'apparaitre dans mon @tm. Si c'est le cas, je return à mon map, le paramètre avec une concaténation pour le différencier.
Voilà, aucune erreur, mais mon count est absent de ces modifications alors qu'un print avant le return, indique bien que le prog y passe.
Je dois avouer que je fatigue, donc l'erreur est peut-être énorme.
Dsl du pavé que je viens d'écrire, je voulais être le plus précis possible.
Merci a ceux qui se pencheront dessus : )
Partager