|Just another Perl shrine
Pre vs Post Incrementing variablesby SavannahLion (Pilgrim)
|on Sep 12, 2010 at 07:22 UTC
SavannahLion has asked for the wisdom of the Perl Monks concerning the following question:
Can someone help me understand why Perl does this with a Pre-Increment:
When what I actually expected was:
Whereas Perl outputs the following with the following code
Which, as expected, outputs:
According to the Camel:
The ++ and -- operators work as in C. That is, when placed before a variable, they increment or decrement the variable before returning the value, and when placed after, they increment or decrement the variable after returning the value.To my surprise, a similar test program in a C++ IDE netted the exact same result. Wow...OK, fair enough.
I can accept this is and it just means I'll have to expand my code a few extra lines to accommodate. I would like to know the why of it though. Why does both ++$i variables get evaluated before being fed into print whereas $i++ is evaluated in sequence? What's the logic behind that?