Como sabemos, ciertas variables (como $1
, $&
...)
reciben automáticamente un valor con cada operación
de ``matching''.
Considere el siguiente código:
if (m/(...)/) { &do_something(); print "the matched variable was $1.\n"; }Puesto que
$1
es automáticamente declarada local
a la entrada de cada bloque, no importa lo que se haya
hecho en la función &do_something()
, el valor de
$1
en la sentencia print
es el correspondiente
al ``matching'' realizado en el if
.