Perlでは、グローバル変数$VERSIONに値を設定する事でモジュール毎(正確にはパッケージ毎)のバージョンを設定する事が出来き、モジュールの利用側からバージョンを元にしたチェックを行うことができます(指定バージョン以上でないとエラーを出す、等)。
バージョン番号の設定方法と、その利用方法を以下に整理します。
- バージョンの設定
- モジュールのバージョンチェック
パッケージのグローバル変数「$VERSION」に値をセットする事で、パッケージにバージョンを付与する事ができます。
バージョンセットの例。
package Hoge;
our $VERSION = 1.2;
これでパッケージ「Hoge」のバージョンは1.2となる。他のパッケージから参照する場合の他のグローバル変数と同様に「$Hoge::VERSION」と表記すれば良いです(ただし、直接この様なアクセスをする必要はほとんど無いと思われます)。
モジュールの読み込み時に指定したバージョン以降である事をチェックする事ができます。モジュールの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;

コメントする