use strict; use warnings; sub cmap (&) { my $map = shift; return sub { map $map->($_), @_ }; } my $incr = cmap {$_*2}; print join " ", $incr->(2..5); print "\n"; # 4 6 8 10