in reply to merging two hashes and updating the 1st hash keys.

You have to use the whole of the second hash somehow, either implicitly by saying %hash1 = ( %hash1, %hash2 ); or explicitly by looping. There's no way around looking at each item of the second hash.

So what's wrong with looping over %hash2 and updating %hash1 as you go along?

Perl 6 - links to (nearly) everything that is Perl 6.