http://www.perlmonks.org?node_id=859814


in reply to Pre vs Post Incrementing variables

I think that if you read on, on the description of the auto-increment operators, or check perlop, you'll notice the following warning:

Note that just as in C, Perl doesn't define when the variable is incremented or decremented. 
You just know it will be done sometime before or after the value is returned. 
This also means that modifying a variable twice in the same statement will lead to undefined behaviour. 
Avoid statements like:
1. $i = $i ++; 2. print ++ $i + $i ++;
Perl will not guarantee what the result of the above statements is.

"Principle of Least Astonishment: Any language that doesn’t occasionally surprise the novice will pay for it by continually surprising the expert..