如何从命令行获取 Perl 的 DateTime::Format::DateManip 版本号?
我从命令行使用它:
perl -MDateTime::Format::DateManip -le 'print $Some::Module::VERSION'
但只返回一个空行,有什么想法吗?
I'm using this from the command line:
perl -MDateTime::Format::DateManip -le 'print $Some::Module::VERSION'
but only return a blank line, any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它是伪代码,
Some
未设置,因此它只是使用-l
标志打印出undef
,如perl -le'打印undef
;要获得证据,请使用
-w
打开警告,将Some::Module
替换为您想要的版本的模块。另外,只是为了好玩;)
用于测试版本号的 Perl 简写
这些是通过利用
use来快速获取版本号的方法。
语法和 Perl 对不够新的版本的明确拒绝。这些都相当于使用
use DateTime 9999;
创建 perl 脚本,但是,这种方式不是跨平台的,因为您只是告诉 bash 转义空格。这在 Windows
cmd
中不起作用,因为你必须在这里,你只需将它放在引号中 - 这告诉 cmd 将其全部作为参数发送给 perl 并且它得到相同的工作完毕。
It is pseudo-code,
Some
isn't set so it is just printing outundef
with the-l
flag, likeperl -le'print undef
;For evidence turn on warnings with
-w
Substitute
Some::Module
with the module you want the version of.Also, just for fun ;)
Perl Shorthands for testing version numbers
These are quick ways to get version numbers by utilizing the
use <module> <version>
syntax and perl's vocal rejection of versions that aren't new enough.These are all equivalent of creating a perl script with
use DateTime 9999;
However, this fashion isn't cross-platform, because you're simply telling bash to escape a space. This doesn't work in windows
cmd
, for that you'll have toHere, you just put it in quotes - that tells cmd to send it all as an argument to perl and it gets the same job done.
如果您发现自己经常这样做,可以从以下位置下载并安装 pmvers: CPAN。该脚本将使您免于两次输入可能很长的模块名称:
If you find yourself doing this frequently, you can download and install pmvers from CPAN. The script will save you from typing a potentially lengthy module name twice: