有没有一种聪明的方法来检测系统中是否安装了某个Perl模块?我的老方法是编写一个Perl脚本,在这个脚本中,我唯一要做的就是使用模块。如果在运行检测脚本时没有发出任何声音,那么我知道模块已经安装,尽管我仍然不知道模块安装的版本和位置。
提前谢谢。
发布于 2009-12-17 15:38:38
类似于:
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。还有来自pmtools的pmpath。
发布于 2009-12-18 23:50:24
据我所知,最短的事情不涉及脚本或shell别名:
$ perl -MFoo::Bar\ 99
Foo::Bar version 99 required--this is only version 1.234.(或者,如果未安装@INC,则通常会显示不在其中的消息)
对于好奇的人来说,这和perl -e 'use Foo::Bar 99'是一样的。
发布于 2009-12-17 15:45:48
instmodsh
NAME
       instmodsh - A shell to examine installed modules
SYNOPSIS
           instmodsh
DESCRIPTION
       A little interface to ExtUtils::Installed to examine installed modules, validate your packlists and even create a tarball from an installed module.
SEE ALSO
       ExtUtils::Installedhttps://stackoverflow.com/questions/1920045
复制相似问题