in reply to Re: Re: Re: Re: infinite loop on while (@array)
in thread infinite loop on while (@array)

Actually this means nothing. (Sorry ;-) The issue is still open...
D:\Development> perl -MO=Deparse,-x3 -e "for ($i = 0; $i < 10; ++$i) { +print $i;}" $i = 0; while ($i < 10) { print $i; } continue { ++$i } -e syntax OK
From B::Deparses documentation <super>(Emphasis by me)</super>:
-xLEVEL
Expand conventional syntax constructions into equivalent ones that expose their internal operation. LEVEL should be a digit, with higher values meaning more expansion. As with -q, this actually involves turning off special cases in B::Deparse's normal operations. If LEVEL is at least 3, for loops will be translated into equivalent while loops with continue blocks; for instance
for ($i = 0; $i < 10; ++$i) { print $i; }
turns into
$i = 0; while ($i < 10) { print $i; } continue { ++$i }
Note that in a few cases this translation can't be perfectly carried back into the source code -- if the loop's initializer declares a my variable, for instance, it won't have the correct scope outside of the loop.
In fact if anything I would say that Deparse suggests that in fact for(;;) is converted into while{}continue{} not the other way around. Although the trailing paragraph that I quoted suggests that its not quite so straightforward as perhaps we might like...

:-)

Yves / DeMerphq
---
Writing a good benchmark isnt as easy as it might look.