next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Ejercicio: Variables Léxicas Sup: Módulos Ant: Introducción a los packages Err: Si hallas una errata ...

Tablas de símbolos y packages

Cada package tiene su propia tabla de símbolos. Así para acceder a una variable es preciso especificar de que tabla se habla (el package) y de que variable se habla (identificador dentro de la tabla). Las variables en el package main pueden ser referidas prefijándolas con ::; así el programa:
$ cat package_main.pl
#!/usr/local/bin/perl5.8.0 -w

$a = 4;

package toto;
$a = 8;
$::a = 7;

package main;
print $a, "\n";
print $toto::a, "\n";
produce como salida:
$ ./package_main.pl
7
8
Una excepción a esto la constituye las variables especiales como $_, @ARGV, %ENV, etc. Estas pertenecen siempre al paquete main.
  1 #!/usr/local/bin/perl5.8.0 -w
  2
  3 package toto;
  4 $_ = 7;
  5 package main;
  6 print;
  7 print "\n";
  8 $main::_ = 4;
  9 print;
 10 print "\n";
Da como salida:
$ ./package_specialvars.pl
7
4



Subsecciones
next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Ejercicio: Variables Léxicas Sup: Módulos Ant: Introducción a los packages Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21