>perl -wMstrict -lE "use List::MoreUtils qw(part); ;; BEGIN { my @parts = qw(EVENS ODDS FIVERS); eval qq{sub $parts[$_] () { $_ + 7 }} for 0 .. $#parts; } ;; my @parts = part { $_ % 5 == 0 ? FIVERS : $_ % 2 == 0 ? EVENS : ODDS } 0 .. 20 ; ;; say qq{'@{$parts[ODDS]}'}; say qq{'@{$parts[FIVERS]}[1 .. 3]'}; say qq{'@{$parts[EVENS]}'}; " '1 3 7 9 11 13 17 19' '5 10 15' '2 4 6 8 12 14 16 18'