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 }] }] }