One caveat of using PERL5LIB is that it's ignored if you're running under taint mode (and if this is a Web application, you should be). You can work around this by doing your own PERL5LIB handling. This is only safe if the environment is under your control, and the script isn't setUID or grant other special powers when run from the command-line.
BEGIN {
if ($ENV{PERL5LIB} and $ENV{PERL5LIB} =~ /^(.*)$/)
{
# Blindly untaint. Taintchecking is to protect from Web data;
# the environment is under our control.
eval "use lib '$_';"
foreach (reverse split(/:/,$1));
}
}
|