有没有一种智能方法可以检测系统中是否安装了某个Perl模块?我的旧sutpid方法是编写一个Perl脚本,其中我唯一要做的就是使用该模块.如果我运行检测脚本时没有任何结果,那么我知道模块已经安装,但我仍然不知道哪个版本以及模块的安装位置.
提前致谢.
就像是:
perl -MModule -e 'print "$Module::VERSION\n"' 2>/dev/null || echo "Not installed"
会给你一个给定模块的版本,或者告诉你它没有安装.用法如下:
perl -MXML::Parser -e 'print "$XML::Parser::VERSION\n"' 2>/dev/null || echo "Not installed"
要查找模块路径,您可以检查@INC
以查找可能的位置,或者您也可以查看perlwhich.还有pmpath从pmtools.
我所知道的最短的事情不涉及脚本或shell别名:
$ perl -MFoo::Bar\ 99 Foo::Bar version 99 required--this is only version 1.234.
(或者@INC
如果没有安装则不通常的消息)
对于好奇,这是一样的perl -e 'use Foo::Bar 99'
.