Expresiones Regulares

Una expresión entre barras como /__END__/ (línea 2) o /LHP/ (línea 3) es una expresión regular en Perl.

La condición if (/__END__/) ... en la línea 2 es cierta si la variable por defecto $_ ``casa'' con la expresión regular /__END__/ o, lo que es lo mismo, pertenece al lenguaje descrito por la expresión regular /__END__/.

Definición 1.8.1   Casar significa que la cadena a la que se le hace el binding, en este caso $_, contiene en algúna posición una subcadena que pertenece al lenguaje descrito por la expresión regular.

Si se quisiera que solo hubiera casamiento cuando $_ sea exactamente __END__ deberíamos usar anclas.

Un ancla es un metasímbolo que casa con una posición. Por ejemplo, el circunflejo ^ es un metasímbolo que casa con el comienzo de la cadena y el dolar $ casa con el final. Así pues, si la expresión regular fuera /^__END__$/ estaríamos forzando a que casar sea equivalente a que la cadena sea exactamente igual a __END__.

Casiano Rodríguez León
2012-03-31