WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:print<<EOFでエラー

0:[投稿] kzhr [MAIL] [URL] [2002/03/13 14:31 ][環境:WIN+NN UNIX系+Perl]

kzhrです。

print <<EOF;で複数列表示させようとしたら、
Can't find string terminator "EOF" anywhere before EOF at edit.cgi line 34とでてしまいました。
弧はちゃんとしているはずなのですが、自分でチェックした限りではエラーの原因となる弧の不足がどこだか把握できませんでした。
http://p-kap.tripod.com/edit.txtにアップロードしましたのでチェックしていただけたら幸いです。


1:[回答] ween [2002/03/13 14:56 ]

EOF の前に Tab が挿入されているために
ヒアドキュメントの終了とみなされていないのが原因かと。


2:[回答] kzhr [MAIL] [URL] [2002/03/13 15:50 ]

その問題は解決しました。(それに隠されていたエラーも)
しかし、47行目のsplit構文で
Can't modify subroutine entry in list assignment at edit.cgi line 47, near ");".
とでました。
Perl初心者の部屋のエラー一覧を見ても、載っていないし、以前もでて一時挫折したこともあり、このエラーの意味など教えてください。


3:[回答] ふじ [URL] [2002/03/13 16:30 ]

> ($name, &value) = split(/=/, $pair);
($name, $value) = split(/=/, $pair);
でしょう。

&value というサブルーチンが定義されていない、とエラーメッセージは
語っていますが。

> $value= ~tr/+/ /;
これは、
$value =~ tr/+/ /;
こうでしょうね。

あと、ファイルハンドルには全て大文字の名前を使うのが慣習です。
小文字だと、perl -wc edit.txt した場合に
Unquoted string "ids" may clash with future reserved word at edit.txt line 55.
のように、将来に予約語とぶつかる可能性があるという警告がでます。


4:[質問] ween [2002/03/13 16:49 ]

>>3
サブルーチンに代入することはできない、という
エラーかと思ったんですが、違うんでしょうか?

> &value というサブルーチンが定義されていない
の場合は
Undefined subroutine &main::value called at ***.cgi line **.
みたいなエラーメッセージだったと思うんですが。


5:[完了] kzhr [MAIL] [URL] [2002/03/13 17:00 ]

サブルーチンを呼び出しているとは気づきませんでした。
後で、スカラーが先か、ファイルハンドルが先かという問題がでましたが自己解決しました。

御協力いただきありがとうございました。


6:[完了] ふじ [URL] [2002/03/13 18:42 ]

>>4
> サブルーチンに代入することはできない、という
> エラーかと思ったんですが、違うんでしょうか?
そのとおりでした。
すみません。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World