Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Golf/Perlish solution to this problem?

by rjray (Chaplain)
on Jan 31, 2008 at 01:24 UTC ( #665251=note: print w/replies, xml ) Need Help??

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.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://665251]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2022-05-24 19:17 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (84 votes). Check out past polls.