package
.
Una declaración package
cambia el espacio de nombres
hasta que encontremos una nueva declaración package
,
o hasta el final del bloque actual. De hecho, las variables en
Perl se clasifican como package variables
y lexical variables
.
Estas últimas son las declaradas con my
. Las
variables package
pertenecen, naturalmente, a un package
(normalmente el actual).
El package
inicial es el package main
.
Cuando sea necesario hacer explıcito a que package
pertenece
la variable, puede hacerse prefijando su nombre con el del
package
, separado por ::
.
package C110; # estamos en el espacio de nombres C110 $a = 5; # variable del paquete C110 fun1 # función del paquete C110 { print "$a\n"; } # ...salimos del paquete C110 package D110; # ahora estamos en el espacio de nombres D110 $a = 7; # esta $a es del paquete D110 print $a; # imprime 7 print $C110::a; # imprime 5 # note como accesamos el espacio de nombres C110... # note el $ y los :: C110::fun1; # llama a fun1 de C110...imprime: 5
Asi pues, para acceder a un identificador situado en un
espacio de nombres diferente del actual debemos
prefijar el identificador con el nombre del paquete;
esto se denomina especificación completa del nombre o
fully qualifying the name.
Si un identificador no está completamente especificado,
Perl lo busca en el package
actual.
Nótese que escribimos $C110::a
y no C110::$a
Casiano Rodríguez León