这不是您想要的确切解决方案,但总体思路如下。
如何解决Cant locate xxxx.pm in @INC path
问题
默认情况下,perl 在标准库路径和当前目录中查找模块。有时您需要使用一些安装在非标准位置的模块;有几种方法可以处理这种情况:
检查您的模块是否在@INC
路径中使用。
例子:
perl -e 'use SOAP::Lite;'
perl -e 'use Error;'
SOAP::Lite
如果您在已安装并已安装的系统上运行这些命令Error
,Perl 将简单地从这些命令返回而不打印任何输出。
要检查当前的标准库路径,请使用:
perl -le 'print foreach @INC'
如果您具有管理权限,那么最好的解决方案是将模块安装在任何系统定义的库路径中。
设置环境变量PERL5LIB
Perl 会先在PERL5LIB
环境变量中指定的目录中查找模块,然后再查找标准库和当前目录。所以你可以设置这个变量来定位你的模块。
例子:
# For unix like systems
PERL5LIB=/home/path/lib:/usr/another/path/lib; export PERL5LIB
注意:在 unix 上用冒号分隔目录,在 Windows 上用分号分隔。
如果您从命令行运行代码,则使用-I
参数。语法应该类似于。
perl -I /home/path/lib -I /usr/another/lib script.pl
您还可以在脚本中添加库路径
在脚本中包含路径的命令是: use lib path
。
例子:
#!/usr/bin/perl
use lib "/home/path/lib";
use lib "/usr/another/lib";
use MyCustomModule;