in reply to $i=$i++

The order an expression is evaluated in isn't generally defined anywhere for perl. Don't count on evaluation order for things like this, as you may well find yourself surprised when moving from one version of perl to another. (Same goes for access times for tied variables--you can't be sure when in a statement a tied variable will be fetched or stored)