in reply to A Functional Substitute

why not just write a new function? this one you can use almost like map:
sub cmap (&@) { map { local $_ = $_; $_[0]->(); $_ } @_[1..$#_]; } my @copy = cmap { s/a/b/ } @array;