mais j'ai pas mon compteur
ça ça ne marche pas
Code :
if ($ligne =~ /
(\<
(.*
)\>
)\s+
(\d+
)/) {
mon fichier est vide
1 2 3 4 5 6 7 8
| my $mail = 'f=<c.toto@toto.com> 6';
if($mail =~ /(\<(.*)\>)\s+(\d+)/ ){
print "$1 => $2\n";
# priorité des parenthèses par la gauche
# $1 => tout ce qui est avant l'espace
# $2 => tout ce qui est compris entre < et >
# $3 => la valeur numérique
} |
Tu récupère une valeur de trop. Tu as trois couples de parenthèses donc $1, $2, $3. Ne récupérant pas $3, il est donc tout à fait normal que tu ne récupères plus ton compteur.
utilise plutôt
if ($ligne =~ /<([@.a-z]+)>\s+(\d+)/i)
les backslah sont inutiles devant les signes plus petit et plus grand que.
Commences-tu à comprendre les expressions régulières?
Partager