I don't like thrashing @_ because I'm weird, so how about something like this?
my $aPush = sub { \@_ }; my $av = []; for (my $index = 0;$index < @_; $index += 16) { my $length = $#_ - $index; $av = $aPush->(@$rv, ($_[$index][0],$_[$index+1][0], $_[$index+2][0],$_[$index+3][0],$_[$index+4][0], $_[$index+5][0],$_[$index+6][0],$_[$index+7][0], $_[$index+8][0],$_[$index+9][0],$_[$index+10][0], $_[$index+11][0],$_[$index+12][0],$_[$index+13][0], $_[$index+14][0],$_[$index+15][0] )[ 0..($length < 16 ? $length:15) ] ); }
Update: After benchmarking this against what you have in the previous post, yours is definitely faster.
antirice
The first rule of Perl club is - use Perl
The ith rule of Perl club is - follow rule i - 1 for i > 1
In reply to Re: Re^2: Getting a list of aliases to selected items from a list of array references (unroll)
by antirice
in thread Getting a list of aliases to selected items from a list of array references
by tye
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |