use Data::Dumper; my %hash1 = (a => [1, 2], b => ['k', 'm']); my %hash2 = (a => [3, 4], b => ['o', 'p']); my %result; for (keys %hash1) { $result{$_} = [@{$hash1{$_}}, @{$hash2{$_}}]; } print Dumper \%result; #oder mit Aenderung: for (keys %hash1) { push @{$hash1{$_}}, @{$hash2{$_}}; } print Dumper \%hash1;