in reply to Re: (tye)Re2: A Real Closure
in thread Unusual Closure Behaviour
That is a and b are just two references to the same function and its (compiled-in) variable. c and d refer to different functons (with the same code) each with its own (run-time declared) variable.> perl -lwe'sub k{my $x; sub j{++$x}; return sub{++$x} } k(); $a=\&j; k(); $b=\&j; $c=k(); $d=k(); print"a b c d"; $,=$"; print &$a, &$b, &$c, &$d for 0..2' Variable "$x" will not stay shared at -e line 1. a b c d 1 2 1 1 3 4 2 2 5 6 3 3 >
|
---|