Unfortunately OP gave not equivalent loops. The first one modifies original array and the second one creates new array with modified data. I rewrite in perl-style the first loop.
I personally believe, ccn, that I can understand your point. More precisely, you also dropped a /msg to me, which I'm reproducing hereafter - I hope it's not a problem:
Re Re^2: C-style for loop OMG! Please look at OP question. He asks about specific "this" loop, not general. I answered about that loop, not general! May be I said not what I actually mean. Not $i but *index* is useless there, coz we can iterate without it
But then please let me get straight and direct and stress what quite about everyone is trying to say here:
- first of all, the OP's post is ambiguous at best, with "this" being something that can mean quite about everything both general or very specific: I know he gives an actual example, but it may well be an actual example of what (s)he thinks to be a generic case;
- the two loops even do different things, as you point out yourself in the first place!
In view of all this, you did not "rewrite in perl-style the first loop:" but as a statement modifier, which is something still slightly different, albeit certainly more Perl-stylish than the C-style form of C<for> loop.