Quick Summary:
My script changes a symlink which is used for loading Modules, and I need to load two different versions of the same module from the same location, once before things are moved, and once after things are moved.
Detailed Summary:
My script changes the installed version of a program I am working on.
In a folder, I have a symlink ( '/a/b/c/parallelogram' ) which points at the installed branch of my software ( '/a/b/c/1_parallelogram' ).
My script starts with a 'use parallelogram::Const'. Then, I do some things, including making my parallelogram symlink point at '/a/b/c/2_parallelogram'.
At this point, I have a 'require 2_parallelogram/Config.pm'. The problem is that Config.pm has a 'use parallelogram::Const'. I need this to reference Const.pm in 2_parallelogram, but since I already have 1_parallelogram/Const.pm loaded, it uses that file.
I cannot change the contents of either Config.pm or Const.pm.
Is there a way for me to locally scope these 'use' statements, or to override what modules are loaded, or to unload these modules?
Any ideas appreciated!