in reply to Re: Combining two hashes
in thread Combining two hashes

While this has been shown to be less than optimal in benchmarks on other nodes, it is the simplest to implement. However, it should be noted that (as far as I am aware) the behavior regarding the merger of duplicate hash keys is undefined. On my computer it happens to be right-associative:

my %a = ('c'=>1,'d'=>2); my %b = ('d'=>1,'e'=>2); my %ab = (%a, %b); # 'd' => 1 my %ba = (%b, %a); # 'd' => 2

If you need to know (or specify) the behavior regarding duplicate keys as mentioned in the OP, you'll probably need a map in conjunction with one of the LIST context examples below.

UPDATE: For example, to create a LIST of repeated key values:

my %a = ('c'=>1,'d'=>2); my %b = ('d'=>1,'e'=>2); my @b{keys %a} = map { exists $b{$_} ? [$b{$_}, $a{$_}] : $a{$_} } key +s %a; # 'd' => [1, 2]