REGEXP - réinitialiser $&, $1, etc.
Et voici un problème qui me fait m'arracher les cheveux de la tête :
Code:
1 2 3 4 5 6 7 8 9
|
@strings = ... #un tableau contenant des chaînes de caractères
$nb_occurences = 0;
for(@strings) {
# Recherche sur la chaîne courante
$_ =~ /.../;
if ($& ne "") {$nb_occurences++);
} |
Supposons que la 1ère chaîne contient ce qu'on recherche. La variable $&
est donc significative. Le problème est que $& restera inchangée MÊME en
cas de recherche infructueuse par la suite (au lieu d'être remise à zéro) !!!!
On se retrouve donc avec une valeur erronée pour $nb_occurences.
Comment contourner ce problème ATROCE (bien que sans doute très connu)
et qui me fait penser que PERL est un langage aussi détestable que je le craignais.