Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Quantum Weirdness and the Increment Operator

by BrowserUk (Pope)
on Jun 24, 2004 at 06:08 UTC ( #369249=note: print w/ replies, xml ) Need Help??


in reply to Quantum Weirdness and the Increment Operator

Fun.

The reason that using your preInc() sub changes the result is because the value it returns is a copy of $m's value at the end of the call to the sub.

By contrast, the value of $m used by the + operator in the non-sub statement is the value of $m at the point after both the subexpressions involved in the + operation have been evaluated.

I assume that the order of the evaluation is a result of converting the expressions to their reverse polish form. Clear as mud, but this is (roughly) equivalent

$m=20; $r = \$m; print ${ $$r += 1; $r } + ${ my $t=$$r; $$r += 1; \$t }; 43

At least, it produces the same result and is close enough for my mental processes to get a notional handle on the mechanism.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algoritm, algorithm on the code side." - tachyon


Comment on Re: Quantum Weirdness and the Increment Operator
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://369249]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2014-09-21 09:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (168 votes), past polls