[bcn-pm] Expresiones regulares dinámicas en Perl 5.10

Enrique Nell blas.gordonagmail.com
Div Mar 28 06:12:39 PDT 2008


Hola

Os comento algo que me ha pasado: al actualizar a 5.10, me empezó a aparecer
una advertencia que antes no salía al ejecutar una función de
procesamiento de RTF
en la que utilizo una expresión regular dinámica para detectar pares
de llaves anidados:

my $tags_rx;
$tags_rx = qr/ ( \{ (?: [^{}]+ | (??{ $tags_rx }) )* \} ) /x;

Tras buscar en Internet, encontré una solución:

http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-01/msg01181.html

Al convertir $tags_rx en una "package variable" desaparecen las advertencias:

our $tags_rx;
$tags_rx = qr/ ( \{ (?: [^{}]+ | (??{ $tags_rx }) )* \} ) /x;

¿Es realmente un error o se trata del comportamiento esperado debido a
algún cambio
en la nueva versión?

Saludos
Enrique


Més informació de la llista de correu Barcelona-pm