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

发布于 2024-08-18 23:06:28 字数 137 浏览 5 评论 0原文

我从命令行使用它:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

榕城若虚 2024-08-25 23:06:28

它是伪代码,Some 未设置,因此它只是使用 -l 标志打印出 undef,如 perl -le'打印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 简写

这些是通过利用 use来快速获取版本号的方法。 语法和 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 并且它得到相同的工作完毕。

It is pseudo-code, Some isn't set so it is just printing out undef with the -l flag, like perl -le'print undef;

For evidence turn on warnings with -w

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

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;

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

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 to

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

Here, 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.

夜灵血窟げ 2024-08-25 23:06:28

如果您发现自己经常这样做,可以从以下位置下载并安装 pmvers: CPAN。该脚本将使您免于两次输入可能很长的模块名称:

pmvers DateTime::Format::DateManip

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:

pmvers DateTime::Format::DateManip
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文