9

私は、テストと本番環境でさまざまなことを行う多くの perl コードを持っています。また、将来コードが壊れる可能性があるいくつかの変更がある場合に備えて、CPAN モジュールの特定のバージョンにコードをロックしたいと考えています。

そのため、使用するすべてのモジュールの特定のバージョンを使用したいと考えています。使用とはつまり

use XML::Smart 
4

2 に答える 2

9

特定のモジュール参照のみを使用するには

use only MyModule => 0.30;

また、必要なモジュールのバージョンが現在インストールされているものよりも上である場合にエラーを出力するには、次のように言うことができます

use XML::Smart v1.6.9;

また

use XML::Smart 1.6.9;

または
下位互換性のため

use XML::Smart 1.006_009;  

perldocからの参照:

  • モジュール VERSION LIST を使用
  • モジュール VERSION を使用
  • モジュール LIST を使用する
  • モジュールを使用
  • バージョンを使用

VERSION 引数が Module と LIST の間に存在する場合、use は指定されたバージョンを引数として Module クラスの VERSION メソッドを呼び出します。UNIVERSAL クラスから継承されたデフォルトの VERSION メソッドは、指定されたバージョンが変数 $Module::VERSION の値より大きい場合に鳴ります。

于 2013-01-15T07:33:08.697 に答える
4

あなたはローテクなことをすることができます:

BEGIN {
    use XML::Simple;
    die "..." unless XML::Simple->VERSION eq '1.23';
    }

特定のモジュールがそのバージョンをどのように報告するかを知ることには頭痛の種があります。モジュールはversionバージョン計算を行うことになっていますが、バージョンを指定する方法が多すぎるため、信頼できるとは思いませんでした。

于 2013-01-15T18:51:09.390 に答える