next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Tablas de símbolos y Sup: Módulos Ant: Módulos Err: Si hallas una errata ...


Introducción a los packages

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";                          
}

package D110;     
# ahora estamos en el espacio de nombres D110
# ...salimos del paquete C110

$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


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Tablas de símbolos y Sup: Módulos Ant: Módulos Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21