perlの入力ファイルを"http://〜"で指定したいのですが

[上に] [前に] [次に]
悪太郎 1999/07/05(月) 23:36:14
perlを使ったCGIで、ファイルを読み込む場合に

open(IN, "datafile.txt");
   while (<IN>) { print; }
   close(IN);

という記述をしますが、入力ファイルを別のプロバイダに置いて
いるhtmlファイルにしたいため

open(IN, "http://www.hoge.ne.jp/~hogehoge/hoge.html");
   while (<IN>) { print; }
   close(IN);

という風に書くと、
「ドキュメントにデータが含まれてません」(NetscapeNavigator)
といったメッセージが出てしまいます。
httpで指定してファイルは開けないのでしょうか?

B-Cus 1999/07/05(月) 23:41:40
できません。こんな感じの処理が必要になります。
 http://www.tohoho-web.com/wwwperl2.htm#socket
本気でやるならタイムアウト処理などを実装したダウンローダが
そこらへんにたくさん転がってるので、探してみてください。

perlのlibnetモジュールを使う、というのでも可。

> open(IN, "http://www.hoge.ne.jp/~hogehoge/hoge.html");
こーゆーときは少くとも
 if ( ! open(IN, "http://www.hoge.ne.jp/~hogehoge/hoge.html") ){
  print "エラー: $!"; exit;
 }
などとして、ちゃんと読めたかどうか確認しましょう。

悪太郎 1999/07/07(水) 01:00:42
[[解決]]
B-Cusさん。回答ありがとうございます。
soketを使わないといけないのですね。
私にはちょっと難しそうなので今回は見送る事にします。
ありがとうございました。

[上に] [前に] [次に]