Lexical::Persistence does a few things, all related. Note that all the 
behaviors listed here are the defaults. Subclasses can override nearly 
every aspect of Lexical::Persistence's behavior.

Lexical::Persistence lets your code access persistent data through lexical 
variables. This example prints "some value" because the value of $x 
persists in the $lp object between setter() and getter().

        use Lexical::Persistence;

        my $lp = Lexical::Persistence->new();
        $lp->call(\&setter);
        $lp->call(\&getter);

        sub setter { my $x = "some value" }
        sub getter { print my $x, "\n" }

WWW: http://search.cpan.org/dist/Lexical-Persistence/