Es legal tomar una referencia a un ''typeglob''. Por ejemplo:
DB<1> $a = 4; @a = 1..5 DB<2> $b = \*a DB<3> x $b 0 GLOB(0x8450df8) -> *main::a DB<4> x ${*$b} 0 4 DB<5> x @{*$b} 0 1 1 2 2 3 3 4 4 5
Veamos otro ejemplo:
lhp@nereida:~/Lperl/src$ perl -wde 0 main::(-e:1): 0 DB<1> %variable = (v => "ven", a => "a", r=> "rumania") DB<2> sub variable { print "esto es una variable" } DB<3> $typeglob_ref = \*variable
Ahora typeglob_ref
contiene una referencia a la entrada en la
tabla de sımbolos para variable
. Podemos acceder a los
elementos individuales a través de la referencia:
DB<4> x %{*$typeglob_ref} 0 'r' 1 'rumania' 2 'a' 3 'a' 4 'v' 5 'ven' DB<5> x &{*$typeglob_ref}() 0 1 DB<6> x *$typeglob_ref->() 0 1 DB<7> x *$typeglob_ref->{r} 0 'rumania'
"esto es una variable"
en las líneas 5,6 y 7? ¿Por que la respuesta es "1"
?Casiano Rodríguez León