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.
Es un error declarar una variable de tipo typeglob:
$ cat mytypeglob.pl #!/usr/bin/perl -w use strict; my *a; my $b; *a = *b; $ ./mytypeglob.pl syntax error at ./mytypeglob.pl line 4, near "my *a" Execution of ./mytypeglob.pl aborted due to compilation errors.
lhp@nereida:~/Lperl/src$ cat -n mytypeglob2.pl 1 #!/usr/bin/perl -w 2 use strict; 3 4 our $a; 5 my $b; 6 7 *a = *b; 8 $a = 4; 9 print "$b\n"; lhp@nereida:~/Lperl/src$ perl -c mytypeglob2.pl Name "main::b" used only once: possible typo at mytypeglob2.pl line 7. mytypeglob2.pl syntax OK
$a = 3.14159; my $a = 5; *b = *a; print $b;
Casiano Rodríguez León