On Fri, Oct 30, 2009 at 09:05:51AM +0000, Mark Fowler wrote:
> Hello,
> 
> I have in the past coded things to only discover later that someone
> else has already written what I have toiled away on, only better.  So
> this time, I'm asking the experts[1] first.
> 
> I have an array in Perl 5 [2].  I want *every* *other* element from
> it.  There is, of course, more than one way to do it:
> 
> my @new;
> foreach (my $i = 0; $i < @old; $i++) {
>   push @new, $old[ $i ];
> }


Assuming no duplicates or references, and an even sized list:

  my @odds  = keys   %...@old}};
  my @evens = values %...@old}};

Oh, and it won't preserve order either. But at least it's not ugly.
And it doesn't need additional variables.


Abigail  "The blue coat is mine"

Reply via email to