Perhaps what the user intends is a WHILE loop.

while (@lastnotpop)
{
$current_element = pop(@lastnotpop);
print "Just Popped $current_element\n";
}

This does what you want via pop. For a while loop, leave the array as it is, and just iterate through it.
Enjoy,
Chris

On Monday, December 2, 2002, at 05:31 AM, Paul Johnson wrote:

PRADEEP GOEL said:
If i am not wrong somewhere , there is a bug come to my notice , in PERL

@lastnotpop = ("where_gone_me","remaining_is_alright","no_fear_now");
foreach $faltu (@lastnotpop) #$faltu is extra doesn't makes difference
even if removed
{ $pch = pop(@lastnotpop );
print " \n can't pop last one from @lastnotpop i.e.($lastnotpop[0] )
:
popped element is $pch #";
}
If there are more than one elemnt in a array(say @lastnotpop than the
last/first element i.e.
$lastnotpop[0] can't be popped out in this single foreach loop.

I don't think it's intensional feature , else it should also not be able
to pop the only
element , if it has one , but it does.
This is a case of "Doctor, it hurts when I ...".

If you look in perlsyn, under the heading "Foreach Loops", you will see:

If any part of LIST is an array, C<foreach> will get very confused if
you add or remove elements within the loop body, for example with
C<splice>. So don't do that.

--
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net




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


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

Reply via email to