in reply to Need Help accessing perl modules installed on shared location
I think that it is a good idea, specifically in the case of XS-based code such as DBD drivers, to install and to maintain those libraries “per machine,” specifically to avoid creating unwanted future dependencies when ... inevitably ... one sexy new machine arrives but the budget does not yet allow for all of them to be replaced. So, while you build an identical set of packages on each machine, you build them on each machine so that CPAN and the various configure scripts will correctly capture that machine’s individual quirks.
From a software perspective, I like to use a sort of “stub loader” module, which basically has a fixed use lib statement in it (so it can find what it needs to run ...) whose sole purpose in life is to configure the @INC path that is needed by the “real” application (object), to instantiate that object, and to tell it to run(). In this way, the inevitable environmental dependencies are placed in the stub, and in the stub alone.
One final tip, that I learned the hard way, is that you should always encode some kind of version-identifier into that application-object, and the stub should check it. In fact, the stub is an excellent place to do all kinds of “do this just once at initialization time” activities. This would be not-so useful in the case of “ordinary CGI,” but I doubt that folks do too much of that anymore.