salut,
comment savoir le nombre de 'match' retournés pas un expression
ex: si j'ai $_ = "fooFOObarBAR";$_ =~ /[a-z]/
=> 6
merci
cvv3@yahoo.com
Version imprimable
salut,
comment savoir le nombre de 'match' retournés pas un expression
ex: si j'ai $_ = "fooFOObarBAR";$_ =~ /[a-z]/
=> 6
merci
cvv3@yahoo.com
Utilise le modifier g
Code:
1
2
3
4
5
6
7
8
9 $x = "fooFOObarBAR"; $i = 0; while($x =~ /[a-z]/g) { $i++; } print $i;
Tout à fait, utilise /g, mais tu n'as pas besoin de faire une boucle :
--Code:
1
2 my $x = "fooFOObarBAR"; my $i = () = ($x =~ m/[a-z]/g);
Jedaï
Ou alors en forçant le contexte de liste, puis scalaire :Code:print scalar (my @nb = $x =~ /[a-z]/g);
Code:my $i = () = ($x =~ m/[a-z]/g);
C'est vraiment étrange cette écriture avec des parenthèses vides. Je comprends que cela force la réponse à être numérique mais comment cela fonctionne-t'il?
Merci,
Comme d'hab' la solution de Jedai (avec une liste anonyme) est plus élégante 8-) (l'avais pas vu passer).
J'ai compris grâce à l'intervention d'Iblis. Cela crée une liste anonyme forçant le contexte de liste.Citation:
Envoyé par Jasmine