$VERSIONによるバージョンの設定

Perlでは、グローバル変数$VERSIONに値を設定する事でモジュール毎(正確にはパッケージ毎)のバージョンを設定する事が出来き、モジュールの利用側からバージョンを元にしたチェックを行うことができます(指定バージョン以上でないとエラーを出す、等)。

バージョン番号の設定方法と、その利用方法を以下に整理します。

  1. バージョンの設定
  2. パッケージのグローバル変数「$VERSION」に値をセットする事で、パッケージにバージョンを付与する事ができます。

    バージョンセットの例。

    package Hoge;
    our $VERSION = 1.2;
    これでパッケージ「Hoge」のバージョンは1.2となる。他のパッケージから参照する場合の他のグローバル変数と同様に「$Hoge::VERSION」と表記すれば良いです(ただし、直接この様なアクセスをする必要はほとんど無いと思われます)。

  3. モジュールのバージョンチェック
  4. モジュールの読み込み時に指定したバージョン以降である事をチェックする事ができます。モジュールのuse時に指定を行います。

    バージョンチェックの例。
    Foo.pl

    #!/usr/bin/perl;
    use Hoge 1.3;
    Hoge.pm
    package Hoge;
    our $VERSION = 1.2;
    1;

    モジュールHoge.pmのバージョンが1.2なのに、スクリプトFoo.plはHoge.pmのバージョン1.3以上を指定しているので、エラーとなります。

    $ perl Foo.pl 
    Hoge version 1.3 required--this is only version 1.2 at Foo.pl line 3.
    BEGIN failed--compilation aborted at Foo.pl line 3.
    

    ちなみにこのチェックは、useする時にパッケージのVERSIONメソッド(正確には、全てのパッケージが継承しているUNIVERSALパッケージのVERSIONメソッド)が実行される事で行われます。

    モジュールを利用する際は、必ずCHANGELOGを参照して使用する機能が特定のバージョン以降でないか確認した上で、use時に指定する様にしましょう。

    なお、Perl自体のバージョンを指定する際には、単にuse バージョン番号とします。Perl v5.10以降が必須の場合は、以下の様に記述します。

    use 5.010;


    →Perl To The Peopleのインデックスページへ戻る

トラックバックURL

このエントリーのトラックバックURL:
http://ash.roova.jp/mt/mt-tb.cgi/65

コメントする