You right. Here's a better way that resurrects and old snippet with (I think), improvements:
sub mapn (&$@) {
my( $code, $n, ) = ( shift, shift );
map {
$code->( @_[ $_ .. $_ + $n -1 ] );
} map $n * $_, 0 .. ( $#_ / $n );
}
my $s = join',', 1 .. 11;
my( @odds, @evens );
mapn{
push @odds, shift||();
push @evens, shift||();
} 2, split ',', $s;
print "@odds\n@evens";;
1 3 5 7 9 11
2 4 6 8 10
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
| [reply] [d/l] |