我在我的主机上安装了几个Perl模块~/perl
,如何将它们添加到Perl模块路径?设置PERL5LIB
或unshift
路径@INC
确定可行,但环境变量在作为CGI脚本运行时没有帮助,并且@INC
方式不是很便携.有没有更好的办法?这必须是一个常见的问题,我错过了什么?
更简洁的做法是:
use lib "/path/" ;
还有其他有趣且好的方法可以在这里找到:
http://www.slideshare.net/pfig/cpan-training-presentation/
此外,重:CGI脚本,您可以为您的CGI信封PERL5LIB路径,它只是取决于你的虚拟主机提供商.
有些主机商允许的CGI环境变量ENV具体的控制,你必须只设置这些,其他人可能有一个"允许"列表,允许在启动时可见的变量出现在局部范围.
可以帮助您了解如何在特定的HTTP服务器上执行此操作.
如果设置ENV不符合您的口味,还有一个选项:local :: lib
其中自动搜索某些预定义路径.
PERL5LIB适用于CGI脚本.您只需将变量设置在正确的位置,例如服务器配置.您使用的是哪个网络服务器?对于Apache,我使用SETENV从mod_env指令.
@INC是便携式的.你放在那里的路径在每台机器上可能都不一样,但你不应该对变量本身有问题.
您是否阅读过perlfaq8中的FAQ条目:
如何将程序所在的目录添加到模块/库搜索路径中?
如何在运行时将目录添加到包含路径(@INC)?