Que cherches-tu précisément à faire? Pourquoi parcoures-tu deux fois le même tableau?
L'une des lignes du fichier est de la forme :
xx %bbbb = (
Quel motif doit tester ton expression régulière? 2 fois ma même lettre, un espace, un pourcent puis 4 fois la même lettre, un espace, un égal, un espace et une parenthèse ouvrante? Quelle valeur veux-tu récupérer?
1 2 3 4
| my $ligne = 'xx %bbbb = (';
if ($ligne =~ /xx \%bbbb = \(/){
print "match\n";
} |
Pour plusieurs espaces
$ligne =~ /xx\s+\%bbbb\s+=\s+\(/
Les crochets carrés servent à utiliser des alternatives ou à écrire la négation. Ils ne servent donc qu'à la déco dans ton expression.
Si /[\s+]xx \%bbbb[\s+]=[\s+]\([\s+]/ ne fonctionne pas, c'est probablement parce que tu exiges que la ligne commence par une espace. Tu peux remplacer les + par des *
Partager