Question

Je parcourais justement les perldocs quand je suis tombé sur cela dans un exemple ( http://perldoc.perl.org/perlre.html#Regular-Expressions - voir exemple de groupes de capture)

"aa" =~ /${a}/; # True
"aa" =~ /${b}/; # True
"aa0" =~ /${a}0/; # False!
"aa0" =~ /${b}0/; # True
"aa\x08" =~ /${a}0/; # True!
"aa\x08" =~ /${b}0/; # False

Je n'ai trouvé aucune documentation sur ce que signifie cette syntaxe.

Alors, que signifie l'expression régulière /${a}/ dans ce contexte ?

Était-ce utile?

La solution

$ avec des supports évitez l'ambiguïté des noms variables.Telle que:

$foo = 'house';
'housecat' =~ /$foo/;      # matches
'cathouse' =~ /cat$foo/;   # matches
'housecat' =~ /${foo}cat/; # matches

Également dans le lien que vous avez donné, il existe une définition pour $ A et $ B, mais vous avez oublié de copier ici.

Autres conseils

Les accolades sont nécessaires pour lever l’ambiguïté $a depuis $a0.Notez que le tokenizer est gourmand, donc un nom de variable est le le plus long séquence possible.Si dans une interpolation variable un autre caractère alphabétique ou un autre chiffre suit, vous avez besoin du ${name} syntaxe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top