Las variables léxicas (declaradas con my
) no se introducen
en las tablas de sımbolos de los paquetes. En estas sólo van las
variables globales. Cada bloque y subrutina tienen su propia
tabla de sımbolos, que se denominan en la jerga Perl scratchpads.
A cada variable léxica se le asigna una ranura en el scratchpad.
Por supuesto, como las variables léxicas no van en las tablas de símbolos sino
en los scratchpads, no tiene sentido prefijarlas con un identificador de paquete.
lhp@nereida:~/Lperl/src$ cat -n privacy.pl 1 #!/usr/bin/perl -w 2 use strict; 3 package tutu; 4 my $a = 10; 5 6 package titi; 7 8 if (defined($tutu::a)) { print "$tutu::a\n" } 9 else { print "No esta definida \$tutu::a\n"}; 10 print "\$a = $a\n";
Casiano Rodríguez León