in reply to Optimization, side-effects and wrong code

<nitpick>
my $x = { 1 .. 40000 }; for (1 .. 3 ) { my $k; while ($k = each %$x) { last; } %$x = %$x; print "$k\n"; }
The assignment back to itself will reset the pointer. But, that doesn't help you very much.

</nitpick>

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

I shouldn't have to say this, but any code, unless otherwise stated, is untested