3

コマンドラインからこれを使用しています:

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

空白行のみを返しますが、何か考えはありますか?

4

2 に答える 2

4

これは疑似コードでSomeあり、設定されていないため、次のようにフラグundefを付けて出力するだけです。-lperl -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 短縮形

これらは、use <module> <version>構文と、十分に新しくないバージョンの perl の音声拒否を利用して、バージョン番号を取得する簡単な方法です。

これらはすべて、次のように perl スクリプトを作成するのと同じです。use DateTime 9999;

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

ただし、スペースをエスケープするように bash に指示しているだけなので、この方法はクロスプラットフォームではありません。これは windowscmdでは機能しません。

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

ここでは、それを引用符で囲みます - これは cmd にすべてを引数として perl に送信するように指示し、同じ仕事を完了させます。

于 2010-01-25T19:15:45.880 に答える
2

これを頻繁に行う場合は、CPAN からpmversをダウンロードしてインストールできます。このスクリプトを使用すると、長くなる可能性のあるモジュール名を 2 回入力する手間を省くことができます。

pmvers DateTime::Format::DateManip
于 2010-01-25T19:38:17.117 に答える