木曜日, 11月 30, 2006

[Perl]Time::Piece::localime + ONE_YEARで小ハマリ

http://d.hatena.ne.jp/usuihiro1978/20061117
から移動。

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

と書かないとだめ。

localtimeがプロトタイプ宣言で

sub localtime ()

となっていれば()つけなくても大丈夫なわけですが、引数を渡せる為そうはなっていません。
こういう関数に引数を渡さないときは明示的に()をつけておいたほうがよさそうですね。

0 件のコメント: