----- Original Message ----- 
From: "Ramprasad" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 03, 2003 1:48 AM
Subject: deleting elements of an array and push into new


> Hello all,
>     I have to remove elements from an array if they match a particualr 
> string and put it into another array
> 
> eg if element matches index or default I want it to be in a new array
> 
> I am trying this
> my @arr = qw( 01.html index.html aa.html bb.html cc.html dd.html );
> 
> 
> # the following does not compile
> #map {s/^(index|default).*/{push @new,$_}/e && delete $_  } @arr;
> 
> 
> #This works but it does not remove the array element
> map {s/^(index|default).*/{push @new,$_}/e && undef $_  } @arr;

There is probably a mroe elegant way of doing this, but...

my @arr = qw( 01.html index.html aa.html bb.html cc.html dd.html );
my @new;
my $count=0;
for(@arr) {
  if(/^(index|default).*/) {
    push @new,$_;
    @arr=@arr[0..$count-1,$count+1..$#arr];
  }
  $count++;
}

print Dumper([\@new,\@arr]);

Shawn

[snip]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to