http://qs321.pair.com?node_id=908221


in reply to Re^3: Processing pairs of values from even-sized array
in thread Processing pairs of values from even-sized array

Thank you for pointing that out, I rarely come across List::MoreUtils as it is not a core module so I wasn't aware of part. Very useful if you can work with the resulting AoA but it seems a bit awkward if you really do need separate arrays.

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:~$
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:~$

Perhaps I'm missing something. I have tried pushing references to @odds etc. onto @parts before using part without success so I can't seem get away from having to do @odds = @{ $parts[ 0 ] }; etc.

Cheers,

JohnGG