- ベストアンサー
エラー原因を教えて下さい
下記のコーディングで” for ”の行でエラーとなりますが,原因が解りません $M_DD=25; for ($dd = 1 ; $dd <= $M_DD; $dd++ ) { $theday = timelocal(0, 0, 0, $DD, $MM-1, $YYYY); $theday = $theday - 24*60*60; $wday = (localtime($theday))[6]; if ( $wday = 0 ) { &dsp_rtn2;} else {} if ( $wday = 6 ) { &dsp_rtn2;} else {} }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
timelocal は存在しますよね? # 「timelocal perl」で検索すれば出てきます use Time::Local; が不足しているせいかも知れません。
その他の回答 (2)
- so_blue
- ベストアンサー率48% (50/104)
そういえば、 if ( $wday = 0 ) ↓ if ( $wday == 0 ) ではないですか? # = だと左辺への代入式とみなされるハズ。
実際に Perl にかけてみたところ、for の行は特にエラーは吐きませんでした。 timelocal は自分で作ったオリジナルの関数でしょうか? もしそうでなければ、timelocal という関数は存在しませんので、これが原因です。 timelocal を自分で作ったのであれば、そのエラーは文法エラーではありません。余計なところに余計な文字が入った、などの記述ミスの可能性が高いです。 それと、if のところに空文の else を入れるのは、書き間違い等の素ですので、あまり勧められません(やるなとはいいませんが)。