ふり返る暇なんて無いね

日々のメモ書きをつらつらと

Perlモジュールのバージョン比較したい

某所でこんなコードがあって、Argument "1.20_01" isn't numeric in numeric le (<=) とか言われてイラッとしたわけですが。

if ($Time::Piece::VERSION <= 1.16) {
    ....
}

この場合、Perlモジュールのバージョンが数値がとは限らないので比較するにはversion.pm使ってあげると良いです。

versionオブジェクトは<=>とcmpをオーバーロードしてるので、比較演算子が使えます。

use version;
if (version->parse($Time::Piece::VERSION) <= version->parse(1.16)) {
    ....
}

参考