我在命令行中使用它:
perl -MDateTime::Format::DateManip -le 'print $Some::Module::VERSION'
但只返回一个空行,有什么想法吗?
答案 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
。
另外,只是为了好玩;)
这些是通过use <module> <version>
语法和perl对不够新的版本的声音拒绝来快速获取版本号的方法。
这些都等同于使用use DateTime 9999;
$ 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