3种快速方法在终端中查找已安装的Perl模块的版本号

Perl模块的功能和行为可能会随着版本的不同而变化,因此了解已安装的Perl模块的版本号在多种场景下都很有用。以下是三种不同的命令行方法,用于在Bash和Windows Powershell中查找已安装模块的版本号。所以,打开终端并开始输入吧!

1. 使用带有-D标志的CPAN

cpan -D Moose

将上面的代码输入到终端中,将‘Moose’替换为您选择的Perl模块名称(在典型的Perl格式Namespace::ModuleName中,例如Catalyst::Runtime)。CPAN将报告模块的版本、安装位置、CPAN上可用的最新版本号,以及本地安装的模块版本是否为最新。输出结果如下

D/DO/DOY/Moose-2.0604.tar.gz
/home/sillymoose/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/x86_64-linux/Moose.pm
Installed: 2.0603
CPAN:      2.0604  Not up to date
Jesse Luehrs (DOY)
doy@cpan.org

2. 使用Perl单行命令加载并打印模块版本号

perl -MMoose -e 'print $Moose::VERSION ."\n";'

此命令使用Perl的-M标志加载模块,然后打印版本变量。这始终可以在$MODULENAME::VERSION下使用。使用单行命令可以避免使用CPAN,并且可以整洁地返回版本号,这可以很容易地用于进一步处理

2.0603

3. 使用带有-m标志的Perldoc加载模块的源代码并提取版本号。

# If you are using Bash:
perldoc -m Moose | grep VERSION

# If you are using Powershell:
perldoc -m Moose | select-string VERSION

虽然这种方法有点像黑客,但通常可以工作。不要忘记将Moose替换为您要查找的模块名称。输出可能会很混乱,但您通常可以找到版本号。如果上述方法1和方法2不工作,这是一个不错的选择。

$Moose::VERSION = '2.0603';
die "Class::MOP version $Moose::VERSION required--this is version $Class::MOP::VERSION"
    if $Moose::VERSION && $Class::MOP::VERSION ne $Moose::VERSION;
=head1 VERSION


本文最初发布在PerlTricks.com上。

标签

David Farrell

David是一位专业程序员,他经常推文博客有关代码和编程艺术的帖子。

浏览他们的文章

反馈

这篇文章有什么问题吗?请通过在GitHub上打开问题或拉取请求来帮助我们。