use strict; use warnings; use feature 'say'; use Data::Dumper; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Indent = 1; use Hash::Merge 'merge'; my $VAR1 = { 'Tim' => { 'abc' => 7, 'def' => 7, 'ghi' => 0 }, 'Adam' => { 'abc' => 0, 'def' => 0, 'ghi' => 0 }, 'keas' => { 'abc' => 0, 'def' => 0, 'ghi' => 0 } }; my $VAR2 = { 'Dav' => { 'jkl' => 12, 'mno' => 34, 'pqr' => 45 }, 'Adam' => { 'jkl' => 7, 'mno' => 0, 'pqr' => 7 } }; my $output = merge($VAR1, $VAR2); say Dumper $output; #### $VAR1 = { 'Adam' => { 'abc' => 0, 'def' => 0, 'ghi' => 0, 'jkl' => 7, 'mno' => 0, 'pqr' => 7 }, 'Dav' => { 'jkl' => 12, 'mno' => 34, 'pqr' => 45 }, 'Tim' => { 'abc' => 7, 'def' => 7, 'ghi' => 0 }, 'keas' => { 'abc' => 0, 'def' => 0, 'ghi' => 0 } };