On Monday 29 October 2007 15:23, Aaron Priven wrote:
> I can do this:
>
> my $hashref = \%hash;
>
> But as near as I can tell, there is no way to do the reverse
> operation: making a "my %hash" that is an alias for a hash reference.

Correct.  You can alias a package variable but not a lexical variable.


> It's possible with a package variable:
>
> #/usr/bin/perl
> our %hash;
> my $hashref = { a => 5 , b => 8 };
> *hash = $hashref;

You are not assigning to %hash you are assigning to the typeglob *hash. 
Because $hashref contains a reference to a hash only the *hash{ HASH } 
entry in the symbol table is affected.


> print $hash{a};
>
> that prints "5". But there's no way to do this with a lexical (my)
> variable.
>
> is this right?

Correct.  Lexical variables are not part of the symbol table.



John
-- 
use Perl;
program
fulfillment


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to