passing a reference to a hash element

[email protected] (Louis Pouzin) Mon, 24 Jan 2005 15:09:52 +0100 (MET)
Newsgroups perl.macperl
Message-ID <[email protected]>
I call a subroutine with a reference to a hash element.
In the subroutine I want to test if the element exists.
If so, I want to get the key and the value of the element.
I can't figure out the correct syntax.
So far I can only get the value. Could someone prompt me ?

Thanks

#!perl -w
use strict; $\ = "\n";
my %H;
$H{one}{two}{three} = 'nut';
print exists $H{one}{two}{three}; # 1
cat(\$H{one}{two},'three');
dog(\$H{one}{two}{three});

sub cat{
	print $_[1]; # three
#	exists ${$_[0]}; # not a HASH element
#	exists ${$_[0]}{$_[1]}; # not a HASH reference
#	exists ${$_[0]}{"$_[1]"}; # not a HASH reference
#	exists $_[0]{"$_[1]"}; # not a HASH reference
}1;
sub dog{
	print ${$_[0]}; # nut
#	exists $_[0]; # not a HASH element
#	exists ${$_[0]}; # not a HASH element
#	exists ${${$_[0]}}; # not a HASH element
}1;