如何从命令行获取Perl的DateTime :: Format :: DateManip版本号?

时间:2010-01-25 19:05:20

标签: perl command-line module-versions

我在命令行中使用它:

perl -MDateTime::Format::DateManip -le 'print $Some::Module::VERSION'

但只返回一个空行,有什么想法吗?

2 个答案:

答案 0 :(得分:4)

这是伪代码,Some未设置,所以它只是打印undef -l标记,如perl -le'print undef;

对于证据,请使用-w

打开警告
$ perl -MDateTime::Format::DateManip -wle 'print $Some::Module::VERSION'
Use of uninitialized value $Some::Module::VERSION in print at -e line 1.

用您想要版本的模块替换Some::Module

另外,只是为了好玩;)

用于测试版本号的Perl Shorthands

这些是通过use <module> <version>语法和perl对不够新的版本的声音拒绝来快速获取版本号的方法。

这些都等同于使用use DateTime 9999;

创建perl脚本
$ perl -MDateTime\ 9999
DateTime version 9999 required--this is only version 0.51.
BEGIN failed--compilation aborted.

然而,这种时尚不是跨平台的,因为你只是在告诉bash逃离空间。这在Windows cmd中不起作用,因为你必须

$ perl -M"DateTime 9999"
DateTime version 9999 required--this is only version 0.51.
BEGIN failed--compilation aborted.

在这里,你只需将它放在引号中 - 它告诉cmd将它作为参数发送给perl并完成相同的工作。

答案 1 :(得分:2)

如果您经常发现这种情况,可以从CPAN下载并安装pmvers。该脚本将使您无需键入两次可能冗长的模块名称:

pmvers DateTime::Format::DateManip