• ベストアンサー

PerlでFILEを埋め込もうとするとエラー

Perlでアクセスカウンターを作ろうと思っています。 そこでファイルオープンを勉強し、 CGIプログラムを実行しようとしたところ、 エラーが起こりました。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, ********@*********(伏せてあります) and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. ------------------------------------------ Apache/2.0.55 (Win32) Server at 127.0.0.1 Port 80 ソースを見てもおかしい所は見当たりません…↓ #! c:/perl/bin/perl open(FILE, "./sample.txt"); @data = <FILE>; close (FILE); print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>sample</title> </head> <body> <p>$data[0]</p> <p>$data[1]</p> <p>$data[2]</p> </body> </html> END サーバーはApacheを使っています。 原因がわかったら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.4

ApacheのエラーログにPerlのエラーが載っていますのでそっちを参照してみてください。 logsディレクトリにログファイルがあります。 他に考えられる原因としてENDの直後に改行が無いのではないでしょうか。

djjjhhh
質問者

お礼

ENDの直後に改行…? フムフム…¢(._.)カチッ おっ!!!!なんと!!!!表示されました!! 改行なんかが関係あるなんて… いやぁ~ありがとうございます!! というわけで締め切らせていただきます!!

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#15647
noname#15647
回答No.3

・ソースの1行目がパス指定になっていますか? (1行目が空行ではないですか?) ・パス指定は正しいですか?

djjjhhh
質問者

補足

>>・ソースの1行目がパス指定になっていますか? (1行目が空行ではないですか?) はい。 >>・パス指定は正しいですか? はい。

すると、全ての回答が全文表示されます。
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

ヒアドキュメントだから、とかではなくて httpヘッダと内容(content)の区切りとして空行は必須です。 http://www.rfs.jp/sb/perl/03/03.html

djjjhhh
質問者

お礼

指摘してくれてありがとうございます。 やってみましたが…また同じエラーが発生しました… 全く原因がわかりません…(~ω~;) もしかしたらApacheの設定とか… 調べてみます。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Content-type の後に改行(空行)が必要とか・

djjjhhh
質問者

補足

ヒアドキュメントですので大丈夫です…

すると、全ての回答が全文表示されます。

関連するQ&A