I think you're saying that some module M.pm gets a new version, v1.1, which should be used for certain programs, but other programs should continue to use v1.0. At one company where I was, they had a special module to handle that. When you use that module, you specify at the same time the modules you want to use, and the version for each. By combine a standard prefic, the module name and the version string, the module generated directories to add onto the PERL5LIB path, so that the correct versions were found when the modules were invoked.
As Occam said: Entia non sunt multiplicanda praeter necessitatem.