in reply to Re: $i=$i++
in thread $i=$i++

Right. The ultimate reason is that perl does everything by reference internally, not by value. We don't deal with real numbers or strings, we deal with pointers to perl variables. Since you're reusing those pointers multiple times, and affecting them multiple times as well, it's up in the air what the ultimate value will be. (Depends on how perl builds and evaluates the expression)