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


in reply to Re^2: Scope of lexical variables in the main script
in thread Scope of lexical variables in the main script

$tricky stays alive as long as there is a reference to it, all the way up until perl exits.

Here is another circular reference, a self-referential variable, it lives even after its inaccessible

{ my $TRICKIEST = "LEAK THAT LIVES FOREVER"; $TRICKIEST = \$TRICKIEST; } ## its alive here, though there is no way to get to it

Well, you could use trickery like PadWalker to get at $TRICKIEST, but that is cheating :)

See Tutorials: Variable Scoping in Perl: the basics, Coping with Scoping

Mini-Tutorial: Perl's Memory Management

Memory leaks and circular references, Circular references and Garbage collection., make perl release memory