Hi,

Working with delete makes the value at the given index be undefined, so going 
backward or forward is irrelevant.
If you wish to take out the element completely you need to use splice. In that 
case you will have to make sure not to miss elements.

4 example (Untested)

my $index = 0;
while ($index < scalar(@ARRAY)) {
 if (criteria) { splice (@ARRAY,$index,1);}
 else { ++$index;}
}

Hope that clear up things
Yaron Kahanovitch

----- Original Message -----
From: "Peter Gordon" <[EMAIL PROTECTED]>
To: "Perl in Israel" <[email protected]>
Sent: 22:18:48 (GMT+0200) Africa/Harare יום חמישי 24 מאי 2007
Subject: Re: [Israel.pm] How to remove elements according to a filter from      
an array

It is better to iterate backwards over the array.

This method is going to miss elements.

On Thu, 2007-05-24 at 15:54 -0400, [EMAIL PROTECTED] wrote:
> Hi
> 
> See perldoc -f delete.
> 
> 4 example (Untested)
> 
> foreach $index (0 .. $#ARRAY) {
>         delete $ARRAY[$index] if (criteria);
>     }
> 
> 
> YAron Kahanovitch
> ----- Original Message -----
> From: "Yossi Itzkovich" <[EMAIL PROTECTED]>
> To: "Perl in Israel" <[email protected]>
> Sent: 20:36:29 (GMT+0200) Africa/Harare יום חמישי 24 מאי 2007
> Subject: [Israel.pm] How to remove elements according to a filter from an 
> array
> 
> Hi,
> 
> Assuming I have a big array, and I want to remove elemnts according to a
> criteria, how do I do it ?
> Please note, I am not asking about getting a new list of elements that
> passed the filter (like grep does), but removing the items from the
> original list.  For a big array (and assuming that arrays are
> implemented with linked list (is it ?)), then removing items from the
> original list might be much faster.
> 
> 
> Yossi
> 
> _______________________________________________
> Perl mailing list
> [email protected]
> http://perl.org.il/mailman/listinfo/perl
> 
> 
> _______________________________________________
> Perl mailing list
> [email protected]
> http://perl.org.il/mailman/listinfo/perl


_______________________________________________
Perl mailing list
[email protected]
http://perl.org.il/mailman/listinfo/perl


_______________________________________________
Perl mailing list
[email protected]
http://perl.org.il/mailman/listinfo/perl

Reply via email to