# Build an array-ized version of a sub sub a { my $s = shift; sub{map {&$s($_)} @_}; } # A simple function workin only on one scalar parameter sub do_something {$_[0] * 2} # Use 'em print do_something 10; print "\n", join (', ', a(\&do_something)->(1 .. 5)), "\n";