Los packages: Repaso

Cada módulo suele contener una declaración 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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19