http://qs321.pair.com?node_id=903439

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

I'm hoping one of you has some advice for the following scenario: A newly developed perl script uses (and needs) the latest version of a shared library loaded into the script with "use". In addition, the script uses another perl module. The second, older perl module also uses the shared library, but an older version. The two versions of the shared library are not compatible. The new script calls a perl subroutine in the perl module, the module tries to access the function in the shared library, but fails--since it expected the older version of the shared library, and the new version had already been loaded. mynewperl.pl
BEGIN { unshift(@INC,".../sharedlib2.0") } use sharedlib; use perlmodule; #call subroutine in perlmodule dependent on sharedlib1.0"
perlmodule.pm
BEGIN { unshift(@INC, ".../sharedlib1.0") } use sharedlib; sub perlsub { #call some function in sharedlib }