[Vienna-pm] reference to hash

Marcel Grünauer marcel at noug.at
Fri Mar 12 13:08:13 CST 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

> Hab ein wenig experimentiert, das geht:
>
> %testhash = (key => "value");
> my $hashname = "testhash";
> foreach (%$hashname) {
>    print "$_\n";
> }

Weil 'our'-Variablen im Symbol Table gespeichert werden; deshalb 
funktioniert

   our %testhash = (key => "value");
   my $hashname = "testhash";

   no strict 'refs';
   print ${$hashname}{key};

oder auch

   print *{"main::$hashname"}{HASH}->{key};

wobei letzteres die Struktur des Symbol Table noch offensichtlicher 
macht.

Lexikalische Variablen (via my() deklariert) leben nicht im Symbol 
Table.
Ich glaube, dass das der Grund ist. Nicholas kann das wahrscheinlich
besser erklären.

Marcel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iD8DBQFAUgqemFGBz66xiXoRAuDXAJ4livPAOvpqkluzbyM6qZOpA3V7CgCdFpN8
mV5U9i4AaPd9xE8vwC99K8A=
=iJs9
-----END PGP SIGNATURE-----




More information about the Vienna-pm mailing list