如何获取已安装的Perl模块的版本和位置?

Hai*_*ang 5 perl module

有没有一种智能方法可以检测系统中是否安装了某个Perl模块?我的旧sutpid方法是编写一个Perl脚本,其中我唯一要做的就是使用该模块.如果我运行检测脚本时没有任何结果,那么我知道模块已经安装,但我仍然不知道哪个版本以及模块的安装位置.

提前致谢.

DMI*_*DMI 9

就像是:

perl -MModule -e 'print "$Module::VERSION\n"' 2>/dev/null || echo "Not installed"
Run Code Online (Sandbox Code Playgroud)

会给你一个给定模块的版本,或者告诉你它没有安装.用法如下:

perl -MXML::Parser -e 'print "$XML::Parser::VERSION\n"' 2>/dev/null || echo "Not installed"
Run Code Online (Sandbox Code Playgroud)

要查找模块路径,您可以检查@INC以查找可能的位置,或者您也可以查看perlwhich.还有pmpathpmtools.

  • 如果您正在使用pmtools,那么[pminst](http://search.cpan.org/~mlfisher/pmtools/pminst)会显示是否已安装模块,以及[pmvers](http://search.cpan.org/~mlfisher/pmtools/pmvers)显示安装了哪个版本.(Debian/Ubuntu上的'apt-get install pmtools') (5认同)

hdp*_*hdp 5

我所知道的最短的事情不涉及脚本或shell别名:

$ perl -MFoo::Bar\ 99
Foo::Bar version 99 required--this is only version 1.234.
Run Code Online (Sandbox Code Playgroud)

(或者@INC如果没有安装则不通常的消息)

对于好奇,这是一样的perl -e 'use Foo::Bar 99'.