in reply to Golf/Perlish solution to this problem?
This is just off the top of my head, and could probably be shorter. This assumes that @array is a multiple of 4 elements, and drops anything that's modulo 4:
my @array = (1 .. 8); my @other = (); while ((@array % 4) == 0) { push(@other, $array[$#array], @array[0, 1], $array[$#array - 1]); splice(@array, 0, 2); splice(@array, -2); }
If you want to handle a remainder chunk specially, you can do so after the while exits...
Edit: This is bad in that the modulo/lost elements are from the center of the list, not the end. Unless you are certain that you list is always a multiple of 4 in length, you'll definitely want to handle the remainder.
--rjray
In Section
Seekers of Perl Wisdom