トップページphp
990コメント339KB

Perlモジュールについて

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2001/08/15(水) 07:47ID:???
モジュールについて話し合うスレッドです。

モジュールの使い方とかリンクは>>2-10さんが出してくれるかも?!
0867nobodyさん2006/02/22(水) 02:04:59ID:???
aruyo
0868nobodyさん2006/02/22(水) 12:49:15ID:???
>>867
モジュール名までどうか!<(_ _;)>
0869nobodyさん2006/02/22(水) 14:34:26ID:???
どうか?
どうかって?
どうかしたのか?
0870nobodyさん2006/02/22(水) 19:41:15ID:???
>>867
モジュール名までどうかご教授ください、お願いします!<(_ _;)>
0871nobodyさん2006/02/22(水) 20:56:00ID:???
fillformだっけかな
0872nobodyさん2006/02/22(水) 22:31:14ID:???
FillInFormね
0873nobodyさん2006/02/22(水) 22:57:58ID:???
>>866
こういうの?

ttp://search.cpan.org/~ikebe/HTML-StickyQuery-0.12/StickyQuery.pm
使ったことないけどー
0874nobodyさん2006/02/23(木) 01:08:08ID:???
>>871
ドキュメント見てたらHTML::Templateのfilterを知りませんでした・・・orz
それとFillInFormでA/FORM共にできました!
ドキュメント流し読みじゃなくてしっかり読むよう心がけます、ありがとうございました。

>>873
これもすごく良さそうなのでfilterじゃなくてこれを使ってみるかも知れません。ありがとうございます!
Apache::StickyQueryとか他の選択肢もいろいろ見つかってめちゃくちゃ助かりました!
sledgeとかでSession::Managerの下にStickyQueryって単語を見たとき検索しておけばよかった・・
英語弱いから全然ピンときませんでした・・・CPANから検索するコツを掴んでないですね・・
0875nobodyさん2006/03/01(水) 02:51:34ID:4cotym3G
WinXPでRawSocket扱いたいんですが、いいモジュールありませんか?
0876ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/01(水) 04:41:52ID:???
>>875
Windows XP は SP2 から raw socket 使えないんじゃなかったか?
普段 UNIX でしかコード書かないから分からないけど…。

Windows ネットワークプログラミングに関するスレで(多分マ板かな)、
C/C++ で実現する方法を聞いた方が早いと思う。

Perl で同じことするライブラリがあったら、それを使うと。
0877_2006/03/07(火) 20:06:01ID:???
Net::SMTPって25番ポートが塞がれたサーバでも使えますか?
0878nobodyさん2006/03/07(火) 22:05:56ID:???
PODには書いてないようだがnewの時に渡すオプションにPortがあるので
25以外のポートを使うことは可能だと思われる。ただしそれで受け付けて
くれる相手がいればだが。
0879nobodyさん2006/03/11(土) 16:57:32ID:???
Rubyモジュール作ってみた。
単にRubyバイナリへのインターフェイスなのでRubyはインストールされてなきゃいけないけどね。
Unix系でも動くかどうか不明。誰かテストしてくれんかな。

wistaria.org/perl/dist/Ruby-0.01.tar.gz
0880nobodyさん2006/03/12(日) 01:12:41ID:???
うわ、面白そうなモジュールじゃん。
CPANに上げちゃえば〜?

0881nobodyさん2006/03/12(日) 01:29:57ID:???
おもしろそー。
0882nobodyさん2006/03/12(日) 11:31:26ID:???
CPANに出すとしたらエイプリルフールネタかなぁ。
4/1のRECENTに
Ruby - Ruby the Object Oriented Scripting Language in Perl
とかあったら笑えるよね。

でも一応、他のマシンでも動いたかどうか確認したい。
誰かmake test成功した?
0883nobodyさん2006/03/12(日) 13:25:32ID:vDgL7y2S
MySQLをDBIから利用するスクリプトを書いているのですが、
接続の時点でこけてしまいます。↓
DBI connect('database=****:host=****','****',...) failed:
Client does not support authentication protocol requested by server;
consider upgrading MySQL client
多分、内部で使ってるモジュールがないか古いかだと
思うのですが、これだけでは詳細が分かりません。
何かヒントなど貰えたらと思い質問しました。
よろしくお願いします。
# ちなみにMySQL自体はシェルから叩いて動かせるので、
# 問題なくインストールできていると思います。
# GNU/Linux、MySQL 4.1
0884nobodyさん2006/03/12(日) 13:29:09ID:g9v1wBDl
>>883
ググれ。一発じゃ
0885nobodyさん2006/03/12(日) 14:09:33ID:???
ありがとうございます。一発でした・・・
0886nobodyさん2006/03/12(日) 15:43:03ID:???
>>882
うちでやったらRubyが1.6で弾かれたのよ。。。
Rubyインスコせんといかん。
0887nobodyさん2006/03/13(月) 02:22:30ID:???
あ〜わるいね、1.8.0からの機能使ってるもので…。
当方はruby1.8.4、perl5.8.7(ActivePerl)。
Perlは5.8あれば良いと思うけど、Rubyのほうはそれ以下だとダメかも。
0888nobodyさん2006/03/13(月) 08:14:23ID:???
見ないで書くけどInline::Rubyとは違うんだよね?
0889nobodyさん2006/03/13(月) 08:19:49ID:???
よーっし、Perl で RoR しようぜ!!
0890nobodyさん2006/03/13(月) 11:08:25ID:???
>>888
Inline::Rubyはコンパイルできなかったので詳細は不明。
でもまぁ、要はRubyを呼び出すってことなので用途は同じ。ただ、使い心地はだいぶ違いそうだ。

あとは何より、Inline::Rubyはメンテナンスされてないのが痛い。READMEに1.6.6とか書いてあるぞ…。
0891nobodyさん2006/03/13(月) 21:39:42ID:???
http://search.cpan.org/~ingy/orz-0.10/
YAMLモジュールの作者がなんでこんなものを…
0892nobodyさん2006/03/13(月) 21:59:06ID:???
orzって海外でもつかうのか?
0893ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/13(月) 22:27:00ID:???
>>891
Ingy は Acme とか XXX とか、ネタモジュール作るの結構好きだけど…
でも、なんで orz なんだろうね(;´Д`)
0894nobodyさん2006/03/13(月) 22:36:17ID:???
>>882
perl Makefile.PL
が通らねー。
ので調べたら、RubyのConfig見て$incと$libを作ってるとこがうまくいってないっぽい。
rubyのConfig::CONFIG['LIBRUBYARG']が-lruby-staticとか返してるのは想定外なんじゃないかなー。
0895nobodyさん2006/03/13(月) 22:37:13ID:???
ネタモジュールでも気兼ねなくポストできるCPANっていいなあ。
それに引き換えPEAR(PHPの公式ライブラリレポジトリ)は無闇に敷居が高くて困る。
0896nobodyさん2006/03/13(月) 22:38:02ID:???
>>891-893
日本に来るからじゃね?
ttp://tokyo.yapcasia.org/blog/ja/sessions.html
0897ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/13(月) 22:55:10ID:???
>>896
あああああああ、申し込むの忘れてたああああああああ

orz…
0898nobodyさん2006/03/13(月) 23:16:41ID:???
m9(^Д^) プギャー
08998792006/03/14(火) 00:02:59ID:???
げっ、ドメインが期限切れ…orz

>>894
サンクス。まぁ、どうせ一発では動かないと思ってたよ。
さて、手元ではちょこっと変えてみたが…うpする場所がorz
0900nobodyさん2006/03/14(火) 20:47:44ID:???
orz.pmって結構便利そうだけど名称は不明だね
0901nobodyさん2006/03/14(火) 22:39:01ID:???
Yada::Yada::Yada
ってモジュールもあるらしいぞ。
0902nobodyさん2006/03/14(火) 23:01:26ID:???
>>901
日本語の「やだ」じゃないからね。 アメリカのテレビコメディーシリーズ「Seinfeld」で
作られて流行った造語。
http://en.wikipedia.org/wiki/List_of_Seinfeld_terms の一番下。
09038792006/03/16(木) 11:54:58ID:???
wistaria.org/perl/dist/Ruby-0.02.tar.gz

ふー。前のはGC周りがバグってた。
インターフェイスも大幅に拡張。
Makefile.PLもCygwinのrbconfig.rbを参考にしながら変えてみたんだけど、どうかな。

実行はこんな感じです↓
#!perl
use Ruby;

rb_eval <<'RB';

  Perl.eval('use LWP');

  ua = Perl["LWP::UserAgent"].new

  req = Perl["HTTP::Request"].new "HEAD", Perl.String("http://www.example.com")

  puts "HEAD #{req.uri}";

  res = ua.request(req)

  puts res.headers.as_string
RB


0904nobodyさん2006/03/16(木) 12:00:55ID:???
perl の LWP つかえばよいのでは?
0905nobodyさん2006/03/16(木) 21:10:53ID:???
LWPはあくまでサンプルだろ
0906nobodyさん2006/03/16(木) 22:00:28ID:???
>>902
そんな日本語ちっくな造語があるのかー。
知りませんでした。
... がなんで「やだ」なのかずっと考えてました(コードを書くのがイヤなのか?とか)。
サンクス。

0907nobodyさん2006/03/16(木) 23:12:22ID:???
>>903
んーとね、ppport.hは元のperlのを使わないと駄目っぽい。
(添付のを削除して、手元のやつを使ったら通った)

あと、\で行が継続しないみたいです。
とりあえずー。
09089032006/03/17(金) 01:06:35ID:???
>>907
サンクス。
…ppportがダメって、何の為のppportだ!?バックコンパチを提供する機能なはずなんだが…。
まぁいいや、ppportは外そう。最新版ならなくてもビルドできるし。

\の行継続も分からんなぁ…。どんなコンパイラ使ってるの?環境は?
とりあえず行継続\は削除するけど。
0909nobodyさん2006/03/17(金) 18:25:58ID:???
Validationってどうしてますか?
0910nobodyさん2006/03/17(金) 19:24:36ID:???
>>909
何の?
0911nobodyさん2006/03/17(金) 22:15:17ID:???
>>908
ppport.hでエラー吐いてたのは5.8.3です。
5.8.8に上げたら大丈夫でした。

環境はVineLinuxだから普通にgccおま。
っつーか、俺も\でエラーになってたんで変に思ったのよ。行継続させたら動いたんだけど。
……あ、ひょっとすると改行問題かも。今気付いた。

他にもwarningとかerrorとか吐いてるんで、もちょっと調べてみます。
0912nobodyさん2006/03/17(金) 22:55:19ID:???
やっぱ改行だった…… orz
ただ、他にもerrorが出るのはよーわからん。問題なさそうに見えるんだけどなぁ。。。


あ、perl Makefile.PLするときにrubyのPATHを指定できるようになってると良いかも。

09139032006/03/17(金) 23:51:56ID:???
>>912
ああそうか!ごめん!改行がCRLFになってたんだな。
そうと分かれば直せばいいだけだ。そういえばそうだなぁ、失念してたよ。

rubyのPATHも了解。確かに、引数で渡せるようにした方がいいね。
0914nobodyさん2006/03/18(土) 17:43:10ID:???
cygwinからcpanモジュールを入れようとしてるが
あまりうまく入るモジュールが少ないな
0915nobodyさん2006/03/18(土) 17:46:58ID:???
Cygwin なんかつかうやつはばかです。
0916nobodyさん2006/03/19(日) 15:08:31ID:???
CPANで入れたモジュールを単純にアンインストールだけしたい時はどうするよ
0917nobodyさん2006/03/19(日) 15:19:26ID:???
CPANPLUSならアンインストールコマンドあるよ
0918nobodyさん2006/03/26(日) 22:17:25ID:???
おまたせ。
wistaria.org/perl/dist/Ruby-0.03.tar.gz

とりあえずrubyのパスをオプションで渡せるようにしたよ。
perl Makefile.PL --ruby=/path/to/ruby
てなかんじで。
省略すると勝手に探して勝手に実行するか、なければ止まる。入力を促すようなことはなくなりました。

他、けっこう変わったのでRuby.podも参照されたし。

さて、問題は英語のドキュメントか…。英語苦手なんだよなぁ。
0919nobodyさん2006/03/28(火) 13:59:49ID:???
ああだめだ、試験的にeval()を「Perl::Package」の中で実行するようにしてみたが、この仕様は失敗だったようだ。
しかしトップレベルでeval()するわけには行かない。
package Foo;のなかでのclass Foo;とdef foo、package Barのなかでの(ryが衝突するのは困るから…。
ううむ。
0920nobodyさん2006/03/28(火) 23:26:52ID:???
ごめーん、いろいろあってまだ遊べてない>Rubyモジュール
YAPC::Asiaで会えたら会おうw
0921nobodyさん2006/03/29(水) 01:08:51ID:???
wistaria.org/perl/dist/Ruby-0.04.tar.gz
use時の-evalでクラスも自動的にインポートするように。例は/08class.t参照のこと。
他、バグフィクス。

>>920
残念、YAPC::Asiaはいかないんだよ。まぁ、暇があったら遊んでもらえると嬉しい。
0922nobodyさん2006/03/32(土) 04:34:24ID:???
あ〜あ3/32のせいでTime::Localつかって日付をunixtimeに変換する部分が
out of range 1..31
ってエラーでちゃったよ…orz
しかし、同じスクなのに別鯖に設置したものは動いたりする。
鯖によってTime::Localって違うのかな?
0923nobodyさん2006/03/32(土) 16:14:42ID:OoUxyhRh
某質問板に投稿されてて気になって試してみたんだが、CGI::Sessionってheaderメソッドがバグってるみたいね。。
吐き出すヘッダの「Set-Cookie:」行の「expires=xxx」が、自分が持ってる秒数出しちゃうみたい。
で、いちおソース読んでCGI::Session→header→CGI→cookie→CGI::Cookie→CGI::Util→expire→expire_calcってたどってみたんだが、このルーチンがオカシイっつーか。
〜 elsif (引数=~/^\d+/) {return 〜
ってとこで、ナゼか先頭が数字だと変換しない仕様になってる。これってどうなん??
(引数=~/^\d+$/) のマチガイじゃないんかなぁ
それにしたって else { return があるから不要では??
まとにかく、CGI::Sessionの_str2secondsルーチンで先頭の記号消しちゃってるから、結果としてはCGI::Sessionのバグっぽい。
個人的にはCGI::Utilもドーかと思うけど。
イマイチ自信ないんで確認求ム

09249232006/03/32(土) 16:21:26ID:OoUxyhRh
イチオ捕捉
CGI::Utilは、先頭が数字だとダメで「+」とか「−」が付いてればちゃんと変換してくれる。
でもCGI::Sessionは秒数を出すときに掛け算しちゃってるから、+が消えて、でアウト
0925nobodyさん2006/03/32(土) 19:13:06ID:???
Netscape Cookieは期限の最初が必ず英語の曜日になるんだったっけ?
仕様忘れたけど、それで正しいと思うよ。使われないけど。
09269232006/03/32(土) 20:18:37ID:OoUxyhRh
そうそう英語の曜日とかハイフンでつなげるとか、RFCで仕様が決まってる。
ちなみに、正しいっていうのは、英語の曜日〜のこと?
上にも書いたけどCGI::Utilは、ちゃんと秒数を英語の曜日〜に変換するコードがあるんだけど、引数の先頭に+−が付いてないと拒否されるんだよね。これ自体がバグな気がするけど、付けて渡さないCGI::Sessionもバグなんだろうね。
ブラウザ次第だろうけど、これじゃまともにクッキー発行されないよね。
ってより、一番不思議なのは、CGI::Sessionて結構メジャーだと思うんだけど、今まで誰も気付かなかった(問題起きなかった)のかな。
みんな直接CGI::Cookieとか呼んでるのかな?それにしても、誰か気付きそうなもんだ。
0927nobodyさん2006/03/32(土) 22:13:25ID:???
>>926
手元の環境では問題ないようだけど
気になるから実行環境とおかしくなった時のコード晒してよ

v5.8.5 built for i386-linux-thread-multi
CGI-Session-4.10

use strict;
use warnings;
use CGI::Session;
my $session = CGI::Session->new;
my $cookie = $session->cookie(-expires => '+1d');
print $session->header(-cookie => $cookie);
__END__
Set-Cookie: CGISESSID=a29d66798de84d216126599df031e040; path=/; expires=Sun, 02-Apr-2006 13:11:15 GMT
Date: Sat, 01 Apr 2006 13:11:15 GMT
Content-Type: text/html; charset=ISO-8859-1
0928nobodyさんNGNG
これなんだろう・・・
http://mixxi.jp/Boofy-0.01/
0929nobodyさん2006/03/32(土) 23:22:43ID:???
>April Fool 2006
だってさ。
09309262006/03/32(土) 23:40:24ID:OoUxyhRh
>>927

それだと普通にCGI::Cookieを使ったのと同じだから、意味がないよ。
問題はCGI::Sessionの_str2secondsルーチンで生成される値が不正ってことなんだけど、その書き方だと、この問題の値が出力されないはず。
$session->cookie(-expires => '+1d'); だと、CGI::Sessionが内部で持ってるCGI::Cookieを使うだけだから、上に書いた「直接CGI::Cookieを呼ぶ」のと同じになる。
しかもheaderメソッドは与えられた引数を自前パラメーターの後に付けてそのままCGIに渡すから、
->header(-cookie => $cookie);
と書くと、内部では、
->header(-cookie => 問題の値, -cookie => $cookie);
ってcookieが2回になる→2回目のやつで上書きされる→_str2secondsの値がCGI::Cookieの正しい値で上書きされる
ということになる。
このあたり、ヘタな説明よりソース見たほうが早いかも。

で、ソースを見ると、バージョン3.9Xより上のバグみたい。
というより、3.9X以下はそもそもヘッダにexpireを出さない。

とにかくexpireの値がheaderで正しくHTTP Headerに変換されないってだけだから、コードはこんな感じ。

use CGI::Session;
$session = new CGI::Session();
$session->expire('+1d');
print $session->header();

結果
Set-Cookie: CGISESSID=c6458e〜; path=/; expires=86400s
Date: Sat, 01 Apr 2006 14:21:46 GMT
Content-Type: text/html; charset=ISO-8859-1

イチオ結果教えて
0931nobodyさん2006/04/02(日) 00:04:01ID:???
わろす

Domain Information:
[Domain Name] MIXXI.JP

[Registrant] Tatsuhiko Miyagawa

[Name Server] ns1.domain.livedoor.com
[Name Server] ns2.domain.livedoor.com

[Created on] 2006/04/01
[Expires on] 2007/04/30
[Status] Active
[Last Updated] 2006/04/01 00:07:42 (JST)

Contact Information:
[Name] Tatsuhiko Miyagawa
[Email] miyagawa at edge dot jp
0932nobodyさん2006/04/02(日) 03:41:25ID:???
>>930
> Set-Cookie: CGISESSID=c6458e〜; path=/; expires=86400s
結果は同じだった
4.10以前から>>927の書き方だったから気が付かなかた

報告したの?数時間前の投稿だけど
いづれにしてもGJでした

#18493: header() method
ttp://rt.cpan.org/Public/Dist/Display.html?Name=CGI-Session
0933nobodyさん2006/04/02(日) 06:18:50ID:Uq9R7pb0
>>932
確認&報告サンクスです。
cpanに報告されてたんだ。って時間みると、ここの誰かなのかな?

ところで
> 4.10以前から>>927の書き方だったから気が付かなかた
それで思ったんだけど、たぶんみんなそうだから発見が遅れたんじゃないかな。
古いのはexpiresを出す機能自体がなかったし、自分自身、たいていcookieは別の方法で自前で作ってるし。headerメソッドあんまり使われないのかも。
それと、CGI〜モジュールって、けっこう頻繁にバージョンアップしてるんだね。これも知らなかった。

09348792006/04/04(火) 00:19:54ID:???
Ruby-0.06.tar.gz

$obj->attr = "foo";

なんてのが出来るようになったよ。とりあえずここでの報告はこれでおわり。
あとはチラシ裏用意したんでそっちで書きます。
0935nobodyさん2006/04/04(火) 18:48:31ID:4PLmYPWh
CGI::Sessionの話題が出たのでついでに報告

セッションファイルの掃除には、過去に何人かCGI::Session::ExpireSessionsをすすめてたけど、これは避けるべき。
シリアライザ次第で落ちる(制御文字が入ってるだけでも落ちる)っていうだけならまだしも、セッションファイルをそのままevalしてしまっているので、セッションに保存されるデータが絶対に安全だという、よほどの自信がない限り、使えない。
ちなみに本体のCGI::Sessionのほうでは、一応セッションファイルの読み込みはSafeとか使ってセキュリティ対策はしてある。

CGI::Sessionのfindを使って掃除、っていう方法は、これまた使えない。
findは、実行するとご親切にアクセスタイムを更新してくれる…。つまり永久に削除されない。

0936nobodyさん2006/04/04(火) 19:20:11ID:???
で、どうすりゃえーの??
0937nobodyさん2006/04/05(水) 03:22:05ID:Q6DtuhIy
>>936
前にも誰か書いてたように、普通にバッチとかスクリプト組んで消すのが簡単&早い&安全だと思うよ。もちろん個人的意見だけどね。
ディレクトリの中に複数の期限のファイルが混在しないように設定しさえすれば、わざわざファイルをロードする必要なんてないんだから、ファイルのアクセス日時を調べて片っ端から消すべし。
圧倒的に軽いから、1日1回じゃなくてもアクセスのたびに(たとえばログインのプログラムからとか)呼び出してもOK

ちなみにCGI::Session::ExpireSessionsが危険だから自信がなければ使うな、っていうのは、付属ドキュメントにも書いてある。
0938nobodyさん2006/04/05(水) 04:29:38ID:???
Apache::Sessionはどうなのさ?
0939nobodyさん2006/04/05(水) 11:28:41ID:Q6DtuhIy
どうって?
0940nobodyさん2006/04/05(水) 23:44:44ID:???
どうもこうもないだろ
0941nobodyさん2006/04/06(木) 05:21:01ID:???
今時ファイルベースでセッション管理とか暇人だな。
0942nobodyさん2006/04/06(木) 16:54:55ID:???
うん、どうもこうもない
939と940が正解
Apache::Sessionは関係ないやん
ちゅーか何が聞きたいのか意味不明だけど。
941は論点ズレちゃう?
0943初心者2006/05/15(月) 09:35:22ID:4cAsENNb
基本的な質問で申し訳ありませんが、perlのモジュールをcpanからインストールしようとすると、

'test' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と表示されてしまい、インストールできないのですが、どうすればよいでしょうか?
方法は、windowsXPのcmdで

C:\> perl -MCPAN -e shell

とした後、

cpan> install NDBM_File

としました。

基本的な質問で申し訳ありませんが、よろしくお願いしますm(__)m
0944nobodyさん2006/05/15(月) 16:20:18ID:???
NDBM_Fileって標準モジュールじゃなかったっけ?バージョンアップしたいの?
0945nobodyさん2006/05/15(月) 22:14:28ID:???
>>943
多分makeが設定されてないから。
nmake.exeある?
0946nobodyさん2006/05/20(土) 09:08:32ID:???
類似画像を検出するモジュールってないですかね?
0947nobodyさん2006/05/22(月) 09:44:35ID:afee109F
>>945
回答ありがとうございます。
Visual Studio 2005 Express Edition
をインストールしました。その中に
nmake.exe
が含まれています
0948初心者2006/05/22(月) 09:56:02ID:afee109F
>>944
返答ありがとうございます
ActivePerlの5.8.8.817
をインストールしたのですが、

use NDBM_File;

とすると

Can't locate NDBM_File.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .
) at test.pl line 4.
BEGIN failed--compilation aborted at test.pl line 4.

という風に表示されます
0949nobodyさん2006/05/22(月) 13:17:06ID:???
>>948
初心者ということにしておけばいいと思ってる?
少しは Google とか使おうよ。
0950nobodyさん2006/05/22(月) 16:32:01ID:afee109F
すみません。ググってもわからなかったんです。
0951nobodyさん2006/05/22(月) 23:02:33ID:???
>>947
CPANのshellで

o conf make

ってやったときnmake.exeが出てくる?
 出てこないから設定しなされ。
 以降はCPANの使い方を調べてから質問してください。
0952nobodyさん2006/05/23(火) 17:09:43ID:KdLDl6Fq
Fileへの読み書きってどのモジュール使ってますか?
0953nobodyさん2006/05/23(火) 17:15:11ID:???
普通そんなことでモジュールは使わない
0954nobodyさん2006/05/23(火) 18:14:18ID:???
>>952
IO::File使う人が多いけど、あえてFileHandle
0955nobodyさん2006/05/23(火) 23:34:34ID:???
>>954
昔と違って今はIO::Fileのラッパーになってるよね。
JcodeがEncodeのラッパーになってるみたいに。
0956nobodyさん2006/05/24(水) 00:23:42ID:???
>>955
そそ、ラッパーになってる。

JcodeはEncodeが使えない環境では
元のJcodeとして動くはずだから、ちょっと違うけどね。
0957nobodyさん2006/05/29(月) 15:46:20ID:qSQBaQa2
読み込んだHTMLの中の相対パスを絶対パスに変換してくれるモジュールありませんか?
JavaScript内のパスもちゃんと変換してくれるとありがたいのですが・・・
0958nobodyさん2006/05/29(月) 21:06:38ID:???
どうやって読み込んでいるのか書けや。
0959nobodyさん2006/05/29(月) 22:24:08ID:???
なにやりたいのかによるけど、baseタグ突っこんだほうが楽じゃね?

#逆にbaseとか存在しないと変換しようがない気がするけど。
0960nobodyさん2006/05/30(火) 10:35:37ID:GSQr5F7L
読み込み方はファイルからだったりSOCKETだったり色々です。
パス変換のみならできそうなんですが
HTMLをparseしてURL部分を変換してくれるモジュール無いかなぁ?と思いまして・・・
例えばテンプレートが相対パスで書かれている場合
CGIで出力すると画像のパスなんかはおかしくなりますよね
ある程度汎用的なモジュールで対応できたら、と思った次第です。
Baseタグかあ。ちょっとやってみます。
0961nobodyさん2006/05/31(水) 00:27:38ID:???
HTMLに ../foo.html とだけ書かれていて、それの絶対パスが分かる君はエスパー?
0962nobodyさん2006/05/31(水) 10:42:52ID:???
いやもちろんBASEとなるURLは指定する前提ですよ・・・
0963nobodyさん2006/05/31(水) 16:09:03ID:???
つ HTML::ResolveLink

cpan探せよ。
0964nobodyさん2006/05/31(水) 16:39:49ID:???
ありがとうございます!!!
HTML URI で一発でしたね・・・
0965nobodyさん2006/06/02(金) 22:10:36ID:???
cgiにHTTP::Liteを組み込んで、指定URL先のHTMLドキュメントを取得させたいのですが、
cgiが置かれているサーバ上のHTMLは読み込めても、そうでないHTMLが読めません。
記述はHTTP::Liteのドキュメントに載ってるものを、とりあえずそのまま使ってまして、

use HTTP::Lite;
$http = new HTTP::Lite;
$req = $http->request("ttp://aaa.bbb.ccc/xyz.html")
or die "Unable to get document: $!";
die "Request failed ($req): ".$http->status_message()
if $req ne "200";
@headers = $http->headers_array();
$body = $http->body();

で、$bodyの中身をファイル出力して、読み込みの確認取ってます。
どうやら ttp://aaa.bbb.ccc/ 以下にあるHTMLじゃないと駄目なようなのですが、
これはプログラム上の記述が何か足りないということでしょうか?
(↑つまり、HTTP::Liteの機能を使いこなせていれば解決できそうな話?)
それともサーバーの設定関係(よそからデータ持ってくるのは×とか)でしょうか?

考えのきっかけになれば充分なので予想でも構いません。
お心当たりの方はお願いします。
0966nobodyさん2006/06/02(金) 22:18:47ID:???
それどこの糞レン鯖?
LWP::UserAgent が使えるか確認してみ?
レス数が950を超えています。1000を超えると書き込みができなくなります。