我需要检索 perl 库 Statistics and Distributions 所在的路径。该路径是运行脚本所必需的。我在计算机集群上。谁能帮我?
谢谢
该答案假定该模块实际上已安装,但未安装在perl
要查找的位置。
通常,Perl 模块Statistics::Distributions
将包含在一个名为Statistics/Distributions.pm
. 在 Linux 和类似系统上,可以使用以下命令快速搜索这些文件locate
:
locate Statistics/Distributions.pm
如果安装了,locate
会吐出类似的一行
/opt/my_perl/lib/Statistics/Distributions.pm
然后,您也可以指示perl
解释器以各种方式查看此路径。一种是定义环境变量PERL5LIB
,即来自bash
:
prompt> PERL5LIB=/opt/my_perl/lib/ ./myscript.pl
或者您可以使用perl -I
开关:
prompt> perl -I/opt/my_perl/lib/ ./myscript.pl
或者您可以将脚本修改为use lib
; 有不止一种方法可以做到这一点;-)
如果您的意思是您需要在程序中使用的模块的路径,则存储在%INC
:
$ perl -MLWP::Simple -le 'print $INC{"LWP/Simple.pm"}'
/usr/share/perl5/LWP/Simple.pm
perldoc -m Your::Module
- 显示模块的来源
perldoc -l Your::Module
- 如果在 PERL5LIB、-I、@INC 等中安装并找到库,则显示其路径。
“ Can't locate XXX in @INC
”通常表示模块没有安装。您是否安装了Statistics::Distributions?
cpan Statistics::Distributions
我遇到了同样的麻烦,可以通过两种方式解决:
1)通过运行命令
perl -I/blabla/folder_your_module_is_installed/blib/lib/ ./script.pl
对于像我这样的傻瓜,重要的是要注意路径的尽头是lib/
,而不是lib/Other_folder/
。因为它后面还有更多的文件夹。
2)在脚本中你可以写:
use lib 'blabla/folder_your_module_is_installed/blib/lib/';
保存并运行 perl scripit.pl