use strict;
sub map2 (&@) {
use Carp;
my $code = shift;
croak 'Odd number of values in list' if @_ & 1;
map { local ($a, $b) = (shift,shift); $code->() } 1 .. (@_>>1);
}
my @array = ('A'..'J');
print 'PRINTING map2{ print "$a $b"; } @array; =>';
map2{ print "$a $b"; } @array;
print "\n",'PRINTING map2{ print "$a $b"; } qw[A B C D]; =>';
map2{ print "$a $b"; } qw[A B C D E F G H I J];
####
E:\>228837.pl
PRINTING map2{ print "$a $b"; } @array; =>A BC DE FG HI J
PRINTING map2{ print "$a $b"; } qw[A B C D]; =>A BC DE FG HI J
####
#!/usr/bin/perl -slw
use strict;
sub map2 (&@) {
use Carp;
my $code = shift;
croak 'Odd number of values in list' if @_ & 1;
map { local ($a, $b) = (shift,shift); $code->() } 1 .. (@_>>1);
}
my @array = ('A'..'J');
print 'PRINTING map2{ print "$a $b"; } @array; =>';
map2{ print "$a $b"; } @array;
print "\n",'PRINTING map2{ print "$a $b"; } qw[A B C D]; =>';
map2{ print "$a $b"; } qw[A B C D E F G H I J];
####
{sco}>./228837.pl
PRINTING map2{ print "$a $b"; } @array; =>
A B
C D
E F
G H
I J
PRINTING map2{ print "$a $b"; } qw[A B C D]; =>
A B
C D
E F
G H
I J