#!/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;