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;

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

I get
$VAR1 = [
[
'index.html'
],
[
'01.html',
undef,
'aa.html',
'bb.html',
'cc.html',
'dd.html'
]
];

the element $arr[1] is undefed but not removed from the array


Can I delete the element somehow
I am going to run this for about 60,000 arrays and I cant afford needless if's and foreach's



Thanks
Ram


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

Reply via email to