for (keys %a) { $a{$_} = $b{$_} if exists $b{$_}; } # or for (keys %b) { $a{$_} = $b{$_} if exists $a{$_}; } # or $a{$_} = $b{$_} for grep { exists $b{$_} } keys %a; # or $a{$_} = $b{$_} for grep { exists $a{$_} } keys %b;