6

我需要检索 perl 库 Statistics and Distributions 所在的路径。该路径是运行脚本所必需的。我在计算机集群上。谁能帮我?

谢谢

4

5 回答 5

9

该答案假定该模块实际上已安装,但未安装在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; 有不止一种方法可以做到这一点;-)

于 2012-09-07T19:50:52.040 回答
4

如果您的意思是您需要在程序中使用的模块的路径,则存储在%INC

$ perl -MLWP::Simple -le 'print $INC{"LWP/Simple.pm"}'
/usr/share/perl5/LWP/Simple.pm
于 2012-09-07T14:59:03.080 回答
4

perldoc -m Your::Module- 显示模块的来源

perldoc -l Your::Module- 如果在 PERL5LIB、-I、@INC 等中安装并找到库,则显示其路径。

于 2013-03-22T13:21:28.783 回答
1

Can't locate XXX in @INC”通常表示模块没有安装。您是否安装了Statistics::Distributions

cpan Statistics::Distributions
于 2012-09-07T16:10:52.423 回答
0

我遇到了同样的麻烦,可以通过两种方式解决:

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

于 2015-05-01T16:12:49.797 回答