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

elusion has asked for the wisdom of the Perl Monks concerning the following question:

I seem to be in a bit of a pickle. I'm working on a web development team in a mod_perl environment for a company. There are two sets of libaries here: legacy ones and new, OO ones. My boss wants me to get rid of the code in the legacy libraries and get them to use the new OO code instead, while maintaining the API for the older apps. For example:
package Legacy; $new_obj = New->new(); sub Ugly_Sub_Name { $new_obj->pretty_method; } package New; sub new { ... } sub pretty_method { ... } package main; use Legacy; # should return the value from New->pretty_method print Legacy::Ugly_Sub_Name, "\n";
The problem is that the above code is a no no in mod_perl, where $new_obj will live between requests. The New class loads information from cookies and grants privileges, so I can't have this. How can I create a $new_obj for every request in the Legacy package or otherwise solve my problem?