my @keys = qw/ one two three /; foreach (@keys) { print ${{do{ local @_ = (@keys => 1 .. 3); map { $_[$_] => $_[$_+@keys] } 0 .. $#keys }}}{$_},"\n"; }