• ベストアンサー

エラー原因を教えて下さい

下記のコーディングで” 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 {} }

質問者が選んだベストアンサー

  • ベストアンサー
  • so_blue
  • ベストアンサー率48% (50/104)
回答No.2

timelocal は存在しますよね? # 「timelocal perl」で検索すれば出てきます use Time::Local; が不足しているせいかも知れません。

その他の回答 (2)

  • so_blue
  • ベストアンサー率48% (50/104)
回答No.3

そういえば、 if ( $wday = 0 )      ↓ if ( $wday == 0 ) ではないですか? # = だと左辺への代入式とみなされるハズ。

noname#25358
noname#25358
回答No.1

 実際に Perl にかけてみたところ、for の行は特にエラーは吐きませんでした。  timelocal は自分で作ったオリジナルの関数でしょうか? もしそうでなければ、timelocal という関数は存在しませんので、これが原因です。  timelocal を自分で作ったのであれば、そのエラーは文法エラーではありません。余計なところに余計な文字が入った、などの記述ミスの可能性が高いです。  それと、if のところに空文の else を入れるのは、書き間違い等の素ですので、あまり勧められません(やるなとはいいませんが)。

関連するQ&A