我需要为我的 Perl 脚本安装一些 Perl 模块。但是,这些模块在我想要运行脚本的服务器上不可用。我也不想弄乱服务器范围的库目录。我认为可以通过操作“@INC”变量来完成。我需要知道如何使用 cpan 和备用 @INC 安装新模块。
或者,将我自己的 Perl 二进制文件/环境与脚本捆绑在一起也可能有意义。有什么想法吗?
答案1
详细答案可以在这里找到:http://www.devdaily.com/perl/edu/articles/pl010015
简短的回答是,将您的模块放入,比如说,,/home/face429/perlmodules
然后在您的 perl 程序中使用:use lib '/home/face429/perlmodules';
。
要检查该路径是否已被包含在@INC
使用中,您可以打印@INC
。
答案2
你的当前的目录是 Perl 搜索路径的一部分。
perl -V
将显示@INC 的内容,其中包括末尾的“。”(当前目录)。
请注意,您的当前目录就是这个,而不是脚本所在的目录。如果要在 Web 服务器上运行,它很容易崩溃。
use lib '/your/perl/modules'
您还可以通过输入脚本来添加特定路径,如 favoretti 所解释的那样。
最后,您可以通过环境变量为所有脚本添加路径PERLLIB
,这样就不必use lib
在每个脚本中都添加路径。
PERLLIB=/your/perl/modules
或SET PERLLIB = C:/your/perl/modules
在 Windows 中。