I sometimes see a for loop which I would have written as a foreach myself, and vice versa.
Also, a little while ago I concluded that -MO=Deparse turned my for into a foreach (or was it the other way around? Well, whatever :) ), providing the same 'arguments'.
So... is there actually any difference between for and foreach?