• ベストアンサー

LWPモジュールについて教えてください。

プログラミングは初心者です。 LWPモジュールのサブクラスLWP::Simpleの get()という関数を使いたいです。 現在、Perlは5.005_3を使用しています。 use LWP::Simple; require LWP::Simple; ・ get(URL) と入れると、500 Internal Server Errorと言うものが出てしまいます。 LWPを使うとき、どのようにすれば使えるのかご指導お願いいたします。

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

  • ベストアンサー
回答No.2

おそらく、LWP::Simpleモジュールがサーバに入っていない、という ことですね。なお、LWP::Simpleは(およびほかの大抵のモジュールは) ActivePerlの専売ではなく、CPANにあるモジュールですよ。 だからまあ、それをインストールすればいいんですが、 Windows用(ActivePerl)でコンパイルされたものをUNIX系のサーバに 持っていっても動きません。サーバ側でモジュールをコンパイルしたり できるような環境ならいいんですが…。 そんな場合、Socketモジュールを使うのが次善の策でしょう。 ちょっと難しいかもしれませんが、下記参考URLなどを見て がんばってみてください。なお、プロバイダによっては、他の サイトにSocketで接続することを禁じている場合もあります。念の ため、確認してみてください。

参考URL:
http://www2.startshop.co.jp/~68user/net/http-2.html
pion16
質問者

お礼

次善の策まで教えていただきありがとうございました。 おかげさまで、Socketを使うことで、うまくいきました。 ありがとうございました。

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

その他の回答 (1)

回答No.1

まず、useとrequireはどちらかで構いません。 use イコール require + importですから。また、これ、perldoc LWP::Simple がすでに間違ってるみたいですが(ActivePerl 5.6.0 build 623)、 getの後ろにはセミコロンが必要ですね。get(URL)のURLには実際は どこかのURLが書かれているんですよね? 試しに以下のように編集してみてください。 use LWP::Simple; $contents = get("http://www.goo.ne.jp"); print $contents; なお、もしそのプログラムをプロバイダ上に置いてCGIとして実行している のだとしたら、エラーメッセージが500 Internal…ですので、 どんなエラーなのかよくわかりませんよね。 あなたのパソコンにPerlをインストールして、 C:\>perl -cw myscript.cgi とシンタックスのチェックをすることをお薦めします。すくなくとも ちょっとした打ち間違いによる文法エラーはこれでチェックすることができます。

pion16
質問者

補足

分かりやすいご説明ありがとうございます。 use LWP::Simple; と追記しただけで、エラーではじかれてしまい、まだ、教えていただいた内容まで、到達できていません。 この場合、サーバー側にActivePeal等のインストールが必要になるのでしょうか?

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

関連するQ&A