電子書籍の厳選無料作品が豊富!

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

A 回答 (3件)

timelocal は存在しますよね?


# 「timelocal perl」で検索すれば出てきます

use Time::Local;
が不足しているせいかも知れません。
    • good
    • 0

そういえば、



if ( $wday = 0 )
     ↓
if ( $wday == 0 )

ではないですか?
# = だと左辺への代入式とみなされるハズ。
    • good
    • 0

 実際に Perl にかけてみたところ、for の行は特にエラーは吐きませんでした。


 timelocal は自分で作ったオリジナルの関数でしょうか? もしそうでなければ、timelocal という関数は存在しませんので、これが原因です。

 timelocal を自分で作ったのであれば、そのエラーは文法エラーではありません。余計なところに余計な文字が入った、などの記述ミスの可能性が高いです。

 それと、if のところに空文の else を入れるのは、書き間違い等の素ですので、あまり勧められません(やるなとはいいませんが)。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!