プログラミングは初心者です。

LWPモジュールのサブクラスLWP::Simpleの
get()という関数を使いたいです。
現在、Perlは5.005_3を使用しています。

use LWP::Simple;
require LWP::Simple;

get(URL)

と入れると、500 Internal Server Errorと言うものが出てしまいます。
LWPを使うとき、どのようにすれば使えるのかご指導お願いいたします。

A 回答 (2件)

おそらく、LWP::Simpleモジュールがサーバに入っていない、という


ことですね。なお、LWP::Simpleは(およびほかの大抵のモジュールは)
ActivePerlの専売ではなく、CPANにあるモジュールですよ。
だからまあ、それをインストールすればいいんですが、
Windows用(ActivePerl)でコンパイルされたものをUNIX系のサーバに
持っていっても動きません。サーバ側でモジュールをコンパイルしたり
できるような環境ならいいんですが…。

そんな場合、Socketモジュールを使うのが次善の策でしょう。
ちょっと難しいかもしれませんが、下記参考URLなどを見て
がんばってみてください。なお、プロバイダによっては、他の
サイトにSocketで接続することを禁じている場合もあります。念の
ため、確認してみてください。

参考URL:http://www2.startshop.co.jp/~68user/net/http-2.h …
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/06/06 15:24

まず、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
とシンタックスのチェックをすることをお薦めします。すくなくとも
ちょっとした打ち間違いによる文法エラーはこれでチェックすることができます。

この回答への補足

分かりやすいご説明ありがとうございます。

use LWP::Simple;
と追記しただけで、エラーではじかれてしまい、まだ、教えていただいた内容まで、到達できていません。

この場合、サーバー側にActivePeal等のインストールが必要になるのでしょうか?

補足日時:2001/06/04 22:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ