如何从apache配置文件向perl包含路径添加目录?

如何从apache配置文件向perl包含路径添加目录?,apache,perl,mod-perl,mod-perl2,Apache,Perl,Mod Perl,Mod Perl2,我在centos上使用apache和mod_perl 2,我的apache配置文件中有一个PerlRequeste指令,用于指定我的mod_perl启动文件: PerlRequire startup.pl 但是,当我尝试启动apache时,mod_perl在其perl include路径中找不到startup.pl。apache错误日志显示: [error] Can't locate startup.pl in @INC (@INC contains: /usr/local/lib64/per

我在centos上使用apache和mod_perl 2,我的apache配置文件中有一个PerlRequeste指令,用于指定我的mod_perl启动文件:

PerlRequire startup.pl
但是,当我尝试启动apache时,mod_perl在其perl include路径中找不到startup.pl。apache错误日志显示:

[error] Can't locate startup.pl in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd) at (eval 2) line 1.
mod_perl 2文档说有一个PerlSetEnv指令可以用来设置环境变量, 可以为此设置PERL5LIB环境变量,如下所述: 但是如果已经设置了PERL5LIB变量,那么我不想破坏前面的设置,而是想向其中添加另一个目录。我可以在apache配置文件中使用什么指令将目录添加到perl include路径(@INC),而不破坏其先前的内容


编辑:@jm666在apache配置中使用“PerlSwitches-I/some/other/path”的答案听起来像是正确的答案,不过另一种可能是在我的PerlRequire指令中使用startup.pl的完整路径。但是,从startup.pl执行此操作的另一个建议答案将不起作用,因为mod_perl找不到startup.pl。

您可以从
startup.pl执行此操作,如:

 use lib qw(/some/other/path);
从医生那里

它通常用于向perl的搜索路径添加额外的目录,以便 稍后的use或require语句将查找不可用的模块 位于perl的默认搜索路径上

要使用lib的参数被添加到perl搜索的开头 路径说

这几乎等于说

BEGIN { unshift(@INC, LIST) }
或者,您可以在httpd.conf中使用

PerlSwitches -I/some/other/path

只需将完整路径放入
PerlRequire
您是否尝试将
SetEnv PERL5LIB/path/to/lib:$PERL5LIB
添加到httpd.conf中?
PerlSwitches -I/some/other/path