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


in reply to Re: Funkyness with closures...
in thread Funkyness with closures...

Stranger and stranger...
  
use strict; use warnings; { my $x = 'A'; sub f { sub { $x++ } } sub g { sub { $x++ } } } my $F=f(); my $G=g(); print $F->(),$G->(),"," for 1..4; ### RESULT ### 01,23,45,67,
So the $F and $G closures now share $x, albeit not the one that was originally instantiated!

It's also interesting that when the lexical scope is wrapped up inside of a BEGIN block, all these problems go away...

   MeowChow                                   
               s aamecha.s a..a\u$&owag.print