Pregunta

Solo estaba navegando por los perldocs cuando me encontré con esto en un ejemplo ( http://perldoc.perl.org/perlre.html#regular-expressions - Consulte el ejemplo de grupos de captura)

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

No pude encontrar ninguna documentación sobre lo que significa esa sintaxis.

Entonces, ¿qué significa el regex / $ {a} / significa en este contexto?

¿Fue útil?

Solución

$ con soportes Evita la ambigüedad de los nombres de variables.Tal que:

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

También en el enlace que ha dado, hay una definición por $ A y $ B, pero ha olvidado copiar aquí.

Otros consejos

Se necesitan los llaves para desambiguar $a de $a0.Tenga en cuenta que el tokenizador es codicioso, por lo que un nombre de variable es posible la secuencia .Si en una interpolación variable sigue otro alfabético o número, necesita la sintaxis de ${name}.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top