■
Time::PieceとTime::Secondsを使って日付の比較を行うときに以下のようなコードを書いていてハマリました。
use Time::Piece;
use Time::Seconds;
if ($t1 >localtime + ONE_YEAR) {
# コード
} else {
# コード
}
上記コードでの
localtime + ONE_YEAR
は
localtime( + ONE_YEAR)
なんですね。。。。
よって
localtime() + ONE_YEAR
と書かないとだめ。
プロトタイプ宣言で
sub localtime ()
となっていれば()つけなくても大丈夫なわけですが、そうでないものは引数を渡さないときは明示的に()をつけておいたほうがよさそうですね。