On Wed, 2002-06-12 at 23:30, W. Huang wrote:
> Hi,
> 
> I have a refence to a hash, which is $hashref. I want to print out the
> name of the hash ( which is "%hash" ) from $hashref, but don't know how.
> Could you please help? thanks!
> 
> #-----
> %hash= {
>    apple => "red",
>    bana  => "yellow",
> };
> $hashref =\%hash;
> print ?hashref;
> #-----
> 
> Carlos

In general, when you want to do something like this ("I want to know the
name of this variable") it means you do not have a sufficient level of
abstraction.  The classic example is the use of many scalars name $x1,
$x2, $x3 instead of just using an array.  This is the same sort of
problem except you need a nested hash structure instead of an array.  To
use your example:

#note these should be parens not braces
#braces create a hash reference not a hash
my %hash_of_data = (
        apple => "red",
        bana  => "yellow",
);

my %hash_of_hashes = (
        hash_of_data => \%hash_of_data,
);

print "$_\n" for keys %hash_of_hashes;
print "$hash_of_hashes{hash_of_data}{apple}\n";

the preceding code should print (but might not since I didn't test it):
hash_of_data
red

-- 
Today is Prickle-Prickle the 18th day of Confusion in the YOLD 3168
P'tang!

Missile Address: 33:48:3.521N  84:23:34.786W


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to