note
johngg
<p>Thank you for pointing that out, I rarely come across [mod://List::MoreUtils] as it is not a core module so I wasn't aware of <c>part</c>. Very useful if you can work with the resulting AoA but it seems a bit awkward if you really do need separate arrays.</p>
<code>
knoppix@Microknoppix:~$ perl -MList::MoreUtils=part -E '
> @parts = part {
> ++ $i;
> $i % 5
> ? $i % 2
> ? 0
> : 1
> : 2
> } 1 .. 20;
> @odds = @{ $parts[ 0 ] };
> @evens = @{ $parts[ 1 ] };
> @fivers = @{ $parts[ 2 ] };
> say qq{@odds};
> say qq{@evens};
> say qq{@fivers};'
1 3 7 9 11 13 17 19
2 4 6 8 12 14 16 18
5 10 15 20
knoppix@Microknoppix:~$
</code>
<code>
knoppix@Microknoppix:~$ perl -E '
> push @{
> $_ % 5
> ? $_ % 2
> ? \ @odds
> : \ @evens
> : \ @fivers
> }, $_ for 1 .. 20;
> say qq{@odds};
> say qq{@evens};
> say qq{@fivers};'
1 3 7 9 11 13 17 19
2 4 6 8 12 14 16 18
5 10 15 20
knoppix@Microknoppix:~$
</code>
<p>Perhaps I'm missing something. I have tried pushing references to <c>@odds</c> etc. onto <c>@parts</c> before using <c>part</c> without success so I can't seem get away from having to do <c>@odds = @{ $parts[ 0 ] };</c> etc.
<!-- Node text goes above. Div tags should contain sig only -->
<div class="pmsig"><div class="pmsig-401112">
<p>Cheers,</p><p>JohnGG</p>
</div></div>
907959
908105