La declaración my @list
en el ejemplo de la
sección 1.7.2 indica que @list
es una variable local.
Las variables declaradas con my tienen por ámbito el texto desde la línea
en que son declaradas hasta el final del bloque.
Perl 5.6.0 introdujo la declaración our.
Esto nos permite declarar variables de paquete.
La sintáxis es la misma que my()
. Se trata de una
declaración similar a use vars
.
Esto es, las variables no son controladas
para su especificación completa por el módulo strict
.
Su ámbito (a diferencia de use vars
es léxico.
Esto es, las variables solo estan libres de comprobación estricta
hasta el final del bloque actual.
use strict 'vars'; { our($x); $x = "hola"; # Uso correcto de $x } $x = "mundo"; # Esto producirá un error.
Asi pues, mientras que use vars '$x'
declara que es correcto
utilizar $x
en cualquier parte,
our($x)
nos permite especificar en que partes
de nuestro programa se puede escribir $x
y en que partes
es objeto de error.