• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ブラウザ上からなら実行可能なスクリプトがコマンドラインだと実行しません)

ブラウザ上から実行可能なスクリプトがコマンドラインだと実行できない問題について

このQ&Aのポイント
  • ブラウザ上で実行可能なスクリプトをコマンドラインで実行すると、Can't locate IO/Socket.pm のエラーが発生します。
  • pathの設定や絶対パスを指定してもエラーの解消には至りません。
  • 解決方法を教えていただけると助かります。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

とりあえず path は関係ないし, 実は「何が悪いのか」はメッセージの中に書いてあるんだけど.... メッセージはちゃんと読んで理解してください. その perl はどのようにインストールしたのですか? 「ブラウザ上から実行する」とは, 具体的にはどのように「実行する」のですか? Webサーバが起動しているなら, それはなんですか? 「ブラウザ上から実行する」ときと「コマンドプロンプトから実行する」ときとで同じ perl が動いていることは確認できていますか?

mm666
質問者

お礼

perlは一箇所だと思っていたのですが、2箇所に入っていました。 socket.pmの入っているlibと同じ階層のbin内のperl.exeで起動する事で解決しました。 違うほうのperl.exeを動かしていたのでsocket.pmは読めていませんでした。 cgiにした時はc:\usr\bin\perl.exeで起動、 コマンドプロンプトからはc:\usr\local\bin\perl.exeで起動、 という違いがありました。 気付かせて頂き、ありがとうございました。 助かりました。

mm666
質問者

補足

早速の回答ありがとうございます。 原因が書いてあるのですね… 2行目の"use IO::Socket;"が見つけられないと言っているのだと思い込んでいました。 perlはperl5.6をダウンロードしてきてインストールしました。 ブラウザ上からの実行は、test.plをcgiにして実行しました。 perlはひとつしか入っていないので同じものが動いていると思います。 実はwindowsはテスト環境で、本番はUNIXサーバへ移行します。 今回test.plは、cronで動作させる予定なので、 コマンドプロンプトから動作確認出来ればcronでも大丈夫かな…と思って実験したのですが つまずいてしまいました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

表示は本当に Can't locate IO/Socket.pm だけですか? 他に情報はありませんか?

mm666
質問者

補足

回答ありがとうございます! 表示は、 Can't locate IO/Socket.pm in@INC (@INC contains: .) at D:\home\test\public_html\test.pl line 2. BEGIN failed--coompilation aborted at D:\hometest\public_html\test.pl line 2. が全てでした。 よろしくお願い致します。

関連するQ&A