Сначала,
do_stuff_with_hashes(%first_hash, %second_hash);
"потоковые" хэши в список, эквивалентный:
( 'key1_1', 'value1', ... , 'key1_n', 'value1_n', 'key2_1', 'value2_1', ... )
и затем вы выбираете один и только один из этих предметов. Итак,
my %first_hash = shift;
все равно что сказать:
my %first_hash = 'key1_1';
# leaving ( 'value1', ... , 'key1_n', 'value1_n', 'key2_1', 'value2_1', ... )
Вы не можете иметь хеш, такой как { 'key1' }
, поскольку 'key1'
ничего не отображает