use strict;
use warnings;
use Data::Dump 'pp';
my %hash;
$hash{tree}->{apple} = 6;
pp \%hash;
$hash{tree} = {apple => 6};
pp \%hash;
__END__
{ tree => { apple => 6 } }
{ tree => { apple => 6 } }
####
use strict;
use warnings;
use Data::Dump 'pp';
my %hash;
$hash{tree} = [4];
push @{$hash{tree}}, {apple => [6]};
pp \%hash;
my $apple_tree = $hash{tree}->[1]->{apple};
push @$apple_tree, {red => 9, fuju => 4};
pp \%hash;
__END__
{ tree => [4, { apple => [6] }] }
{ tree => [4, { apple => [6, { fuju => 4, red => 9 }] }] }
##
##
for my $key (keys %hash) {
my ($root_value, $subtree) = @{$hash{$key}};
print "$key $root_value\n";
for my $subtree_key (keys %$subtree) {
my ($subtree_root_value, $subtree_subtree) = @{$subtree->{$subtree_key}};
print "$key $subtree_key $subtree_root_value\n";
for my $bottom_level_key (keys %$subtree_subtree) {
print "$key $subtree_key $bottom_level_key ", $subtree_subtree->{$bottom_level_key}, "\n";
}
}
}
__END__
tree 4
tree apple 6
tree apple fuju 4
tree apple red 9