Depending upon your needs, sometimes you can get by with
just:
$hash2->{'bob'} = $hash1->{'a'}->{'b'}->{'c'};
If you check for a
defined key named 'bob' in $hash2, you
will get a false value - however, if you check for a key
named 'bob' that
exists in $hash2, you will get a true
value. So if you can get by with keys that have no values
then don't bother with an
if expression. If you can't,
then do what
vladb suggests (with
Juerd's
modification, of course).
Keep in mind that even checking for the presence of a hash
key that does not exist will auto-vivify it into
existence. Run the following code to see an example:
use strict;
use Data::Dumper;
my ($hash1,$hash2);
$hash2->{'bob'} = $hash1->{'a'}->{'b'}->{'c'};
print Dumper $hash1, $hash2;
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)