#!/usr/bin/perl -w use strict; use Data::Dumper; my %h1 = ( "one" => 1, "two" => 2, "three" => 3, ); my %h2 = ( "four" => 4, "five" => 5, "six" => 6, "one" => 11111, ); foreach my $x ( keys %h2 ){ if (exists $h1{$x}) { $h1{$x} = [$h1{$x}, $h2{$x}] } else { $h1{$x} = $h2{$x}; } } print Dumper (\%h1); #### #!/usr/bin/perl -w use strict; use Data::Dumper; my %h1 = ( "one" => 1, "two" => 2, "three" => 3, ); my %h2 = ( "four" => 4, "five" => 5, "six" => 6, "one" => 11111, ); foreach my $x ( keys %h1 ){ $h1{$x} = [$h1{$x}]; } foreach my $x ( keys %h2 ){ push @{$h1{$x}}, $h2{$x}; } print Dumper (\%h1);