|Just another Perl shrine|
Re: use lib in cgi envby kcott (Chancellor)
|on Nov 05, 2012 at 21:03 UTC||Need Help??|
Your main problem seems to be that the directory structures of your test and production environments do not mirror each other. The relative path for your test environment would be:
but, for your production environment, you'd need
While you may need different settings (such as in a configuration file), you shouldn't be changing code between development and testing environments nor between testing and production environments. If you do make code changes, then you're neither testing what you developed not delivering what was tested.
Furthermore, the scenario you describe suggests that you are going to have to make code changes in the production environment. This is something you should strenuously avoid if you wish to maintain a stable production environment.
I would expect you to encounter related problems for the life of the application while your environments remain out of sync.
I don't have enough information to provide a definitive answer on how to fix this. Here's a few potential options (that allow use lib './modules'; to work everywhere):
However you decide to fix this, make sure it applies to all environments: I mentioned development in addition to test and production - you may have others.