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を使わないといけないのですね。
私にはちょっと難しそうなので今回は見送る事にします。
ありがとうございました。
[上に]
[前に]
[次に]