#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $h1 = { 'location_setting' => [ '409' ], 'status' => [ '501' ] }; my $h2 = { 'status' => [ '137', '124' ], 'location_setting' => ['405'], 'classification' => ['0']}; #my $x = {%$h1, %$h2}; my %x = (); my $x = \%x; foreach my $h1key (keys %{$h1}) { push @{$x{$h1key}}, @{${$h1}{$h1key}}; } foreach my $h2key (keys %{$h2}) { push @{$x{$h2key}}, @{${$h2}{$h2key}}; } print Dumper $x; #### $VAR1 = { 'status' => [ '501', '137', '124' ], 'location_setting' => [ '409', '405' ], 'classification' => [ '0' ] };