in reply to Using MAP to swap around HoA hash keys and array values.

The "key" :) is that map only iterates over one element at a time, so you want to feed it the keys of the old hash.
my %new_hash = map { $hash{$_}[0] => [ $_, @{$hash{$_}}[1,2] ] } keys +%hash;