in reply to Re^3: coderefs and (&) prototypes
in thread coderefs and (&) prototypes

sub mymap (&@) { my ( $code, @list ) = @_; map &$code, @list } my @cbs; sub reset_cbs { @cbs = ( sub { uc }, sub { lc } ); } sub get_cb { push @cbs, shift(@cbs); return $cbs[0]; } reset_cbs(); print(( mymap \&{ get_cb() }, qw( a b c d ) ), "|"); print(( mymap \&{ get_cb() }, qw( a b c d ) ), "\n"); reset_cbs(); print(( map &{ get_cb() }, qw( a b c d ) ), "|"); print(( map &{ get_cb() }, qw( a b c d ) ), "\n");
abcd|ABCD aBcD|aBcD