use Data::Dumper; my $sub1 = { 'a' => {'apple' => 1 ,'ape' => 2}, 'b' => {'ball' => 1, 'bell' => 2} }; my $sub2 = { 'd' => {'dog' => 1}, 'c' => {'cat' => 1, 'clear'=> 2} }; my %hash = (%$sub1 ,%$sub2); print "\n". Dumper( \%hash);