sub multimap (&$@) { my $fn = shift; my $n = shift; my @res; while (@_) { push @res, $fn->(splice (@_, 0, $n)); } @res; } print multimap { "$_[0]=$_[1]\n" } 2, %ENV;