• 締切済み

require文が実行できない

perl で require 'cgi-lib.pl'; または require "jcode.pl"; を実行すると、 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, admin@mshome.net 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. というメッセージが出ます。(cgi-lib.pl、jcode.plは同じディレクトリにあります。)

みんなの回答

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.8

ローカルで試されているとのことなので More information about this error may be available in the server error log. とあるのならログをみてみてはどうでしょう。

WETCOLD
質問者

お礼

ありがとうございます。  ログを見たら  ./cgi-lib.pl did not return a true value at -----  とあったので、cgi-lib の方がまずいと思いましたが、  何度か 起動させると正常になります。(つまり、不安定。require文が原因ではないでしょう。その前に jcode.pl はPCの時間が 10/31 になっていたので 正常な 10/1 に修正したら、エラーは消えました。マザーの電池を変えることにします。なんで、 jcode.pl に関係するのか? マザーの電源を 一日 カットして分かったことです。変な時間に勝手に起動したりしていたし。)

  • hok212
  • ベストアンサー率66% (100/150)
回答No.7

よくエラーメッセージを見ると「admin@mshome.net」という文字がありますね。 httpd は IIS か PersonalWebServer でしょうか? それとOSはなにをお使いですか? ※ .plがCGIとしてサーバに認識されてないような気がします。

WETCOLD
質問者

お礼

ありがとうございます。  ANO.8 のとうりです。

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.6

ローカルで実行しているのなら、PerlをインストールしたディレクトリのLibの中にcgi-lib.pl、jcode.plを置いてみたらどうでしょうか。 自信ないですが。

WETCOLD
質問者

お礼

ありがとうございます。  ANO.8 のとうりです。

  • hok212
  • ベストアンサー率66% (100/150)
回答No.5

FTPクライアントが拡張子 .pl のファイルをバイナリモードでアップロードしてる可能性があります。 アスキーモード(テキストモード)でアップロードしてみてはどうでしょうか?

WETCOLD
質問者

お礼

ありがとうございます。  ANO.8 のとうりです。

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.4

下記のサイトを参考にしてみて下さい。 Perlの文法に関するエラーなのかそれ以外の原因なのか区別する手助けになると思います。

参考URL:
http://homepage1.nifty.com/typhoon/at-cgi/debug.html
WETCOLD
質問者

お礼

ありがとうございます。  ANO.8 のとうりです。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

まさか実行するPerlのプログラムのパーミッションがおかしいなんてオチではないですよね?

WETCOLD
質問者

お礼

ありがとうございます。  1.実行しているのは、転送前のローカルのWebサーバーの段階です。  2.perl -c でチェックすると syntax OK です。  3.ローカルでの パーミッション変更方法は分かりません。

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.2

#1です。 実際にディレクトリから削除して試して見たのでしょうか? サーバによっては、cgi-lib.pl、jcode.pl等を自分で置かなくても、requireで呼び出して使える場合があり、その場合自分で置くと逆にエラーとなる場合があります。 削除してもだめなら、私にはお手上げです。 まさか実行するPerlのプログラムとcgi-lib.pl、jcode.plが別のディレクトリにあるなんてオチではないですよね?

WETCOLD
質問者

お礼

ありがとうございます。  1.削除しても同様でした。  2.同じディレクトリです。  3.use encoding "shift_jis"; で日本語対応させることはできます。

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.1

cgi-lib.pl、jcode.plをディレクトリから削除してみる。 これでだめなら、cgi-lib.pl、jcode.plをディレクトリに戻した状態で、 require './cgi-lib.pl'; require "./jcode.pl"; と変更してみる。

WETCOLD
質問者

お礼

ありがとうございます。   cgi-lib、jcode,pl を使用するのが目的です。(削除)   require './cgi-lib.pl'; require "./jcode.pl"; に変更しても同じでした。

関連するQ&A