某所でこんなコードがあって、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)) { .... }