[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 件のコメント:
コメントを投稿