【Perl 】初心者コーナーPart6
■ このスレッドは過去ログ倉庫に格納されています
0001undefさん
2001/07/26(木) 00:40ID:???尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
案外答えはもう書かれているかもしれない。
0349344
2001/08/10(金) 01:22ID:???>>347
両方ともだめでした。
htmlファイルを作るタイプだからだめなのかな
public_html/cgi-bin/bbs.cgi
に投稿して、普段は
pubglic_html/index.html
をアクセスするタイプです
0350名無しさん@お腹いっぱい。
2001/08/10(金) 02:17ID:uDrjeUNELocation
0351ナナ萌え(゚д゚)ウマー
2001/08/10(金) 03:18ID:???print "Location: $path\n\n";
}
0352名無しさん@お腹いっぱい。
2001/08/10(金) 13:54ID:???0353名無しさん@お腹いっぱい。
2001/08/10(金) 14:01ID:???0354名無しさん@お腹いっぱい。
2001/08/10(金) 14:49ID:ed6w6DP2のように出力先をtest.txtに設定した状態で、
例外的にプロンプトの方に出力させるには
どのように書けばよいのでしょうか。
0355名無しさん@お腹いっぱい。
2001/08/10(金) 15:03ID:???どういう役割のコマンドなんですか?
0357名無しさん@お腹いっぱい。
2001/08/10(金) 15:09ID:???逝って来ます。
0358名無しさん@お腹いっぱい。
2001/08/10(金) 15:39ID:???print "1";
print STDERR "2";
0359名無しさん@お腹いっぱい。
2001/08/10(金) 17:37ID:ed6w6DP2$a="abc";
$b="abcdef";
if($b=~ /$a/)
{
イメージとしてはこんな感じです。
0360名無しさん@お腹いっぱい。
2001/08/10(金) 17:38ID:ed6w6DP20361名無しさん@お腹いっぱい。
2001/08/10(金) 17:54ID:???これか、、
http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069&st=518&to=526&nofirst=true
0362名無しさん@お腹いっぱい。
2001/08/10(金) 18:48ID:???ls -lRなら知ってる、"ls"はディレクトリを表示するUNIX系OSのコマンド
DOSの"DIR"みたいな奴だ。
"-lR" はオプションで、まぁその根こそぎ表示すると思ってくれればいい。
systemが投げるコマンドが解らない時はこんな所を探して調べればいい
http://www.linux.or.jp/JM/
0363名無しさん@お腹いっぱい。
2001/08/10(金) 20:00ID:???処理速度が速くなったりするのですか?
0364名無しさん@お腹いっぱい。
2001/08/10(金) 20:01ID:???相手にされたければ黙って使っておけ。
0365.
2001/08/10(金) 20:10ID:qy20tGgA君の能力ではその程度に認識なのかも知れないが、世の中には自分以上の
人間や物事を深く掘り下げて認知しようとする人間
が沢山居ると言う事を忘れてはいけない
0366名無しさん@お腹いっぱい。
2001/08/10(金) 20:14ID:???今度はこっちに来たの? やれやれ……。
0367名無しさん@お腹いっぱい。
2001/08/10(金) 20:24ID:???勘弁してよ。
君のためのスレはちゃんとあるんだから。
もうこっち来ないでね。
0368トリップの解析したい人
2001/08/10(金) 22:58ID:???それとも他にPerl板っていう板があるんですか?
0369名無しさん@お腹いっぱい。
2001/08/10(金) 23:01ID:???http://corn.2ch.net/test/read.cgi?bbs=entrance&key=997381086&st=119&to=119
0370368
2001/08/10(金) 23:11ID:???すいません、そのプログラム?の意味がわかりません。
質問させてもらいます。今、トリップスレに書いてあった
#!/usr/local/bin/perl
$counter = 'aaaaa'; # マジックインクリメント用
$seed = 'Q!<'; # ランダムな文字列
$str = 'nofx'; # 探す文字列の正規表現
while(1){
$_ = substr(crypt("$counter$seed", 86), -8);
print "$counter$seed - $_\n" if /$str/oi;
last if ++$counter eq 'aaaaaa';
}
っていうのでやってみて実際動作したんですが、
これの結果を自動でテキストで保存できるようには
できませんか?
トリップスレの方は解析で忙しそうなので…
0371名無しさん@お腹いっぱい。
2001/08/10(金) 23:21ID:???そんなのPerlの質問ですらないぞ
0372ループ鯖完 T_T
2001/08/10(金) 23:48ID:???実験するのはやめておくれよぅ・・・・・
0373 ◆0nyWWW/2
2001/08/11(土) 00:06ID:???0374名無しさん@お腹いっぱい。
2001/08/11(土) 00:19ID:???家の弟です。 迷惑かけて申し訳無い
んにゃろ、、ぶっ頃してやる
0375pp
2001/08/11(土) 00:22ID:???↑
すいませんが、このスレの40ってどういう事?
取り敢えず可能なんですね?
0376名無しさん@お腹いっぱい。
2001/08/11(土) 00:29ID:???>>375
実際出来てる所見ると可能なんでしょう、もう対策されたみたいですけども
PG板で おしえて!!! とかスレ立てちゃだめだよ。
0377333
2001/08/11(土) 02:01ID:V2ESYaRc0378名無しさん@お腹いっぱい。
2001/08/11(土) 02:13ID:???うーん、スクリプト見るのが面倒だ。
Perlの話というより、CGIの改造でないかと、コレ。
というか、336で決着ついてないのかな?
# ネタだったりして(w
0379名無しさん@お腹いっぱい。
2001/08/11(土) 02:15ID:???一気に置換するのに一番効率のよい方法あるでしょうか?
ログファイルのコンバートに使いたいのですが・・・
よろしくです。。。
0380333
2001/08/11(土) 02:23ID:V2ESYaRc>>336の通りにすると>>341のような現象が起こるので解決してません。
自分でも@new=sort(@new);とか考えられる限りの事は尽くしてみたんですができませんでした。
0381名無しさん@お腹いっぱい。
2001/08/11(土) 04:46ID:???こんなんでやっていけるのだろうか
0382名無しさん@お腹いっぱい。
2001/08/11(土) 04:47ID:???0383名無しさん@お腹いっぱい。
2001/08/11(土) 05:00ID:???やってれば自然と出来るようになるよ。
0384名無しさん@お腹いっぱい。
2001/08/11(土) 06:29ID:j13TLi42perl -pi.bak -e 's/foo/bar/g' *.logとか?
.logの拡張子のファイル中のfooをbarに変換し、
元のファイルはhogehoge.log.bakみたいに保存される
サブディレクトリ以下も対象ならuse File::Find等使えばok!
でも一番効率の良い方法ってどういう意味?こんなの、
効率も糞もないと思うのだけど…
0385名無しさん@お腹いっぱい。
2001/08/11(土) 11:58ID:X8Jv3YYU環境によっては動かない(特にWindows系は*の処理がイマイチ)
>379
環境も書いとけ。systemコマンドでシェル使ったほうが早い場合も
あるからな。
0386名無しさん@お腹いっぱい。
2001/08/11(土) 20:50ID:???0387386
2001/08/11(土) 20:53ID:???事故解決しました。
0388379 ◆PL.a6eWs
2001/08/11(土) 23:47ID:???>>385さん、どうもありがとうです。
>でも一番効率の良い方法ってどういう意味?
ええと、効率がよいじゃなくてperlのみでできて環境に依存しない
方法でした・・・スマソ
サーバー上に変換スクリプトをおいて(シェルはつかえないので)したいなと
思ってますです。
ローカルのWinの環境でも出来ればそれでいいんですが。。。
0389kkkkkkkk
2001/08/12(日) 02:40ID:???動かないんです。
#!/usr/bin/perl
print "Content-type: text/html\n\nOK.\n"; exit(1);
なにが悪いんでしょう。
cgi本体:http://www41.tok2.com/home/harebare/cgi-bin/test.cgi
ファイル名に.txtをつけたもの。
http://www41.tok2.com/home/harebare/test.cgi.txt
こんな簡単なことではまるなんて。
cgi-binのパーミッションは701
test.cgiは700。
だれか助けて〜
0390 ◆0nyWWW/2
2001/08/12(日) 02:42ID:???・改行コード
・全角文字が混じっていないか
0391kkkkkkkk
2001/08/12(日) 02:50ID:???利用するにおいての注意事項はありますか?
・倉庫としてのご利用(音楽・画像等のデータを置いておくだけ)は出来ません。
・「index.html」もしくは「index.htm」の設置は絶対に必要です。
・「index.html」もしくは「index.htm」に<TITLE>タグでタイトルを記入しておいて下さい。
記入されていない場合、アクセスランキングに参加出来ません。
・CGIのみの使用は禁止しております。
↑こいつのせいでした。
0392名無しさん@お腹いっぱい。
2001/08/12(日) 06:45ID:???まずは自分で作ってみたの?そんなの数行で出来るぞ。
初心者だからといってなんでも人に頼ってはPerlの上達も
見込めないよ。
「こう作ったんですけど動かない」ならともかく、何も
ものがなくて、教えてと言われてもね。特にPerlは、
やり方は何通りもあるんだから。
0393名無しさん@お腹いっぱい。
2001/08/12(日) 20:32ID:???テキストファイルを読み込んで、'ポニーテール'のはいった行を抽出しようとしました。
push(@out, $_) if($_ =~ m/ポニーテール/);
とすると、最初の「ー」がまずいというエラーが出たので、
push(@out, $_) if($_ =~ m/ポニ/);
とすると、ほとんどの行が当てはまってしまいました。
後半のまずいのはたぶん、windows98 + ActivePerlで「ポ」の文字コードの後半が
0x7cで|ですから、part1の「鉄鋼」が化けるのとおなじじゃないかなと思いましたけど
読んでも対策ができませんでした。よろしくお願いします。
0394名無しさん@お腹いっぱい。
2001/08/12(日) 21:36ID:???push(@out, $_) if($_ =~ m/\Qポニーテール\E/);
0395名無しさん@お腹いっぱい。
2001/08/12(日) 21:54ID:???ありがとうございます。できました。
\Qは、\Eがでるまでのメタキャラクタを打ち消すんですね。勉強になりました。
0396395
2001/08/12(日) 21:59ID:???0397名無しさん@お腹いっぱい。
2001/08/13(月) 00:38ID:???>尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
>案外答えはもう書かれているかもしれない。
1にこう書いてある。 どうして過去ログ読まないんだろう。
せめて初心者スレッドの過去ログくらいは…。
本当に役に立つ事が書いてあるよ。もちろん改行コードとか\Qとかも。
0398名無しさん@お腹いっぱい。
2001/08/13(月) 04:54ID:a9/FXvbYACCEPT確認してエンコートヘッダにg-zip指定するだけじゃだめなんでしょ?
0399名無しさん@お腹いっぱい。
2001/08/13(月) 15:45ID:JzeNXb.k教えて〜ん。
0400名無しさん@お腹いっぱい。
2001/08/13(月) 16:15ID:???普通に取得できますが何か?
0401名無しさん@お腹いっぱい。
2001/08/13(月) 16:35ID:???改行コードを \n にしても \r にしても、同じ結果になるんだけど、(0D 0A だったかな)
回避方法あります? わざわざ、サーバにアップロードするのは面倒なんで…
0402名無しさん@お腹いっぱい。
2001/08/13(月) 16:55ID:???0403399
2001/08/13(月) 17:16ID:JzeNXb.k失礼。説明が足りませんでした。
SOSヘッダ付けたperlスクリプトにD&Dでファイル渡すとショートファイルネームで引数に渡されるのです。
で、渡されたファイル名を出力したいんですが、その時にロングファイルネームで出力したいんです。
なのでショートファイルネームをロングファイルネームに変換する方法教えて〜ん。
0404◆/InUhgpU
2001/08/13(月) 18:52ID:???0407名無しさん@お腹いっぱい。
2001/08/13(月) 22:41ID:7FPat022my($str) = q{1 2 3 4 5 6};
if ($str =~ m/^(?:[^\t]*\t){4}5/) {
print 'OK';
} else {
print 'NG';
}
print "\n";
下記のコードですが、
perl5.005はOK
perl5.6はNG
になります。
※タブは全角スペースに変換してます。
分かる方いますか?
ちなみに、
m/^(?:[^\t]*\t){3}[^\t]*\t5/
はとおります。。謎
0408◆/InUhgpU
2001/08/13(月) 23:09ID:???qq{1\t2\t3\t4\t5\t6};
なら"OK"になるが。
当方ActivePerl5.6.1…
ってアレ?5.6.0だとNGだな…何故だろう。
0409UUDH
2001/08/13(月) 23:42ID:???foreach (@test2){
@temp = split (/<>/ ,$_);
if ($temp[0] eq yokoi){
next;
}else{
push (@out,"$temp[0]<>$temp[1]<>$temp[2]<>\n");
}
}
print "@out\n";
とすると、何故か2行目の頭から空白が入ってしまいます。
もう正規表現とかで何でもかんでも取り払っても入ってしまいます。
3日たって何が何かわからなくなってきました。、、、、
0410名無しさん@お腹いっぱい。
2001/08/13(月) 23:55ID:???俺も良くわからないけど改行コードの問題な気がする・・・。
0411◆2O1OO1O2
2001/08/13(月) 23:56ID:9/vbk82Q> print "@out\n";
配列をダブルクオートの中に入れると、要素の間にスペースが入る。
print @out;
でいいんじゃない?
0412名無しさん@お腹いっぱい。
2001/08/13(月) 23:57ID:???#最終行
print @out, "\n";
#or
local $" = "";
print "@out\n";
#yokoiはクォートしろ
0413名無しさん@お腹いっぱい。
2001/08/14(火) 02:51ID:???このスレではわからん
0414UUDH
2001/08/14(火) 04:30ID:???>>410
僕もそう思いましてあちこちで\wと\d以外は全部捨てたりしてみたんですが
解決できなくて、、まさか一番最後だったとわ
>>411
今まで " は有っても無くてもほぼ良し、位に思い込んでました。
ダメだなぁ、、今KENTさんのチャット見るとやっぱり裸のまま
printしていました。
まだコンテキストが良く理解出来てない様で度々こう言うトラブル
に見舞われています
>>412
これはどちらも絶対解らなかったです。
. じゃ無くて , なんですね。 初心者本には載ってないなぁ
方法2の方は局所的に " を意味の無いものにすると言う感じでしょうか
localも使うこと有るんですね、ふかいッス
>#yokoiはクォートしろ
YES SIR!!!、ゴチャゴチャしていて段々無茶苦茶になっていました
一人だと絶対自己解決出来なかったです。 大感謝です!!>>みなさん
きっと良書を沢山読んでいるから、こう言う事で躓かないんですよね
まだ結城さんの本と、WEBだけで粘ってるのですが、ちょっと限界かなぁ。。
書籍スレを読み直してみます。
プログラミングPerlとか買っちゃっても大丈夫かな、、 (^^;)
もう一回PART1から読み直してみよう、有難うッス>>みなみなさま
0415UUDH
2001/08/14(火) 05:00ID:???$scalar1 = @test;
$scalar2 = "@test";
print '配列が裸で評価されると・・・'."\n";
print "$scalar1\n".'↑要素数が返る'."\n\n";
print ' " で括って評価されると・・・'."\n";
print "$scalar2\n".'↑要素を空白で区切ったものが返る'."\n";
うれしかたので、カキカキ、、、
配列の中? がカンマデリミタになってると思い込んでたのが気付かなかた
原因でした それ位カンマが出力されない時点で気付けよ=>漏れ (;´Д`)
0416名無しさん@お腹いっぱい。
2001/08/14(火) 05:23ID:???> 方法2の方は局所的に " を意味の無いものにすると言う感じでしょうか
これって、local $" = ""; のほうって事?
これは配列をダブルクォートの中に入れたときに要素間に入る文字列を定義してる。
デフォルトはスペースになってる。ためしに$" = ":" とかやってみると良いよ。
こういう特殊変数はラクダ本に全部載ってるし、やっぱラクダ本買うべし。
0417名無しさん@お腹いっぱい。
2001/08/14(火) 08:23ID:GO0JN5uYクエリーストリングで扱う方法ってないですか?
/もクエリーストリングとして扱いたいのです
0418417
2001/08/14(火) 11:24ID:GO0JN5uYできた。っていうか勘違い
0419名無しさん@お腹いっぱい。
2001/08/14(火) 14:51ID:???いや別に間違っちゃいないけどね…。
0420KENT-WEB
2001/08/14(火) 16:03ID:???/ イヤー笑った笑った
KENT-WEBのギャグは素晴らしい
簡単なスクリプトを複雑に記述し
一見難しいスクリプトに見せかけている\
/ ⌒ ⌒ |
| (・)(・) |
| 三 ○ 三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ___ | < hello world!からやりなおせ。
|\ \_/ / | サイトのパーミッション777にしろ。
\ \___// \_________
\_/ \/
|==|
\Ω/
死ね・くたばれ・消えろ・失せろ・潰れろ・馬鹿・あほ・間抜け。ドジ・ 無能。
0421名無しさん@お腹いっぱい。
2001/08/14(火) 16:07ID:???0422名無しさん@お腹いっぱい。
2001/08/14(火) 17:38ID:xRewybvcで訊くよりもここにこいと言われました。
f2sでGDモジュールを使いたいのですが、
モジュールってインストールする必要があるんですよね?
>telnet.cgi かなんかを使って自分のスペース上でインストールする。
>次に、GD モジュールについて同じことをする。
と教えられたのですが、telnet.cgiはどこで配布されているのですか?
0423名無しさん@お腹いっぱい。
2001/08/14(火) 17:52ID:???これか?
0424名無しさん@お腹いっぱい。
2001/08/14(火) 18:09ID:xRewybvcありがとうございます。
使い方が分かりません。書いてある通り
アップロードしてタイトルの「$ownhost」というようなのを
CGIファイルの「$Host」に設定し再アップロードしましたが、
そこからがわかりません。手順を簡単にで結構ですので、
説明していただけませんか。
0425名無しさん@お腹いっぱい。
2001/08/14(火) 19:46ID:???入ったりする、F2sは使ったこと無いからわからんから
論理行の13行目を
$Host = $ENV{'REMOTE_HOST'}; にしちゃえ
後は上の方の設定をちゃんとして、作業が終わったら
*****速攻で*****削除する事だ
ccが使えないとか言うなよ
0426UUDH
2001/08/14(火) 20:38ID:???はぅっ、まだ間違えてる、、、思いっきり特殊変数じゃん、、、
いつも @aray = ('1','2'); とかしてるんで 勝手にデフォルトのバウンダリは
コンマだと思い込んでたのがいけなかったみたいです。
>やっぱラクダ本買うべし。
了解!! まだ持って無いけど他の皆さんにも推奨 (わ
サンキューです。
0427名無しさん@お腹いっぱい。
2001/08/14(火) 20:39ID:???画像URLを読み込んで画像を表示させてるのです。
決まった縦横サイズの画像だけを表示させたいのですが、
何か画像情報を取得する方法はありますでしょうか?
0428名無しさん@お腹いっぱい。
2001/08/14(火) 22:20ID:???画像のフォーマット調べれば取得できるけど。
まあ、面倒ならこれ使うとか。
http://www-power.net/cgi/other/library/stdio/reference/
の getImageSize()
0429名無しさん@お腹いっぱい。
2001/08/14(火) 22:25ID:???0430名無しさん@お腹いっぱい。
2001/08/15(水) 00:56ID:???特殊変数なら perlvar に全て書いてあるし、
邦訳青ラクダ本って内容が5.003の頃のだから古い。
ラクダ本に書かれている事は同じ内容でドキュメントにも書かれてる。
そのドキュメントの邦訳も存在する。
これでも推奨?
0431名無しさん@お腹いっぱい。
2001/08/15(水) 01:14ID:???> そのドキュメントの邦訳も存在する。
どこの事ですか?
0432名無しさん@お腹いっぱい。
2001/08/15(水) 01:30ID:avupzYrQhttp://www.att.or.jp/perl/man/
こことかじゃない?
でも、自分で、探してよ・・・。
0433名無しさん@お腹いっぱい。
2001/08/15(水) 01:58ID:???でも紙とWebページじゃ読みやすさが全然違うので初心者には奨励する。
0434427
2001/08/15(水) 02:31ID:???ありがとうございました。
getImageSize() を試してるのですが、pngの情報だけ読めず・・・.
どうしてなのか? うう。
0435名無しさん@お腹いっぱい。
2001/08/15(水) 02:53ID:???御免なさい。一応確認したかったもので。
0436名無しさん@お腹いっぱい。
2001/08/16(木) 11:13ID:Z9iCsVz2open関数で取得できるファイルリストの件数に上限はあるのでしょうか?
ファイル数が4000ちょっとまでなら取得できるのですが、それ以上存在する場合、
ファイルハンドルには空が返ってくる模様…
もし上限があるとするならば、どのように対処するのが吉でしょか?
よろしくお願いいたします。
0437名無しさん@お腹いっぱい。
2001/08/16(木) 11:15ID:Dm7Pm6YQ無名配列ってなんなのかいまいち掴めません。。
それにどんな事に使ったら有効か教えてください。。
お願いします。
0438名無しさん@お腹いっぱい。
2001/08/16(木) 13:08ID:Z1NIPYXEとすれば、スカラー変数に無名配列のリファレンスが保存でけるでそ?
でさ、普通配列ってさ、(("a", "b", "c"), ("d", "e", "f"))みたく単純には階層化できません。
厳密に言うとスカラー値しか入れられないからね。
さっきの $abc_ref を使えばそれが出来るようになるってわけさ。
無名配列や無名ハッシュを使えば多重構造の変数が出来上がります。
0439名無しさん@お腹いっぱい
2001/08/16(木) 15:43ID:.lon33X.0440名無しさん@お腹いっぱい。
2001/08/16(木) 15:58ID:???「日付 曜日 公式」とかで検索したらわらわら出てくるぞ。聞く前に自分で調べようね。
0442名無しさん@お腹いっぱい。
2001/08/16(木) 22:54ID:???┃ ただいま、ラウンジで大盛り上がりのブラウザ戦争ゲーム! . ┃
ビビー ______________
[>>8888888 ‖|*ENDLESS BATTLE@2ch*|‖ . \冂/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ . E´∀` ヨi /7
逝って良し!を発動。 . ミ从、;、;从 彡 ボシュッ .()) 「/~'ー'~~ 7/ ̄ |
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ http://wwwwwwwww ===二]匚ト〈‐〈iテ〈〈c iエコ
∧ ∧ [》∞∝ 彡゙ ゙/;´ミ ∧∧∧∧ []v/□ || ╋|
冂(,,゚Д゚) ウマー ボンッ | |(*゚Д゚)| <覚醒中!> | j | |.|| ┃|
| ̄\つ∧二ヽ ∩ >->_>->_<要塞に > 几0(几)L二!
\_匚i_|∪∪i] ((_(∴ヽヽ\(∴|当たる!> ∠三ヲ/i二iヽ
\_/二/ 〜〜 /oヽヽ ,>─>ヽ ∨∨∨∨ __∧___
[》∞∝ く。◎◎)=)__/)=) ψ ζ させるかあ!
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
恨み!復讐!英雄の誕生!生身の人間とのどろどろした戦闘! ...
┃http://corn.2ch.net/test/read.cgi?bbs=entrance&key=997943180 .┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
0443名無しさん@お腹いっぱい。
2001/08/16(木) 23:01ID:/rmEQXZ6print 'age'; print 'sage';
とやって
$buffer eq 'agesage';
にすることはできますか? できるならやりかた教えてください。
やりたいことは、printとか短い文での変数への書き込みです。
>>436 当方初心者ですが、システム依存のような気がします。
何やろうとしてそんなにファイル開くんですか?
0444名無しさん@お腹いっぱい。
2001/08/17(金) 00:53ID:???全然意味ワカンナイですけど。
print $buffer .= "age";
とか云うことじゃないよね?
0445名無しさん@お腹いっぱい。
2001/08/17(金) 01:06ID:???$foo = new IO::Scalar;
$foo->print("bar");
$foo->print("baz");
print $foo;# output "barbaz"
という書き方が出来る。
0446名無しさん@お腹いっぱい。
2001/08/17(金) 01:14ID:???#!/usr/bin/perl
package ScalarHandle;
use base 'Tie::Handle';
sub TIEHANDLE {
my $self = bless {}, shift;
$self->{_ref} = shift;
$self;
}
sub WRITE {
my ($self, $scalar, $len, $ofs) = @_;
my $_ref = $self->{_ref};
$$_ref = join '', $$_ref, $scalar;
$len;
}
package main;
my $buffer = '';
{
tie local(*H), ScalarHandle => \$buffer;
use SelectSaver;
my $saved_h = SelectSaver->new(\*H);
print 'hoge', 'foo';
}
print $buffer;
__END__
0447名無しさん@お腹いっぱい。
2001/08/17(金) 01:51ID:???tie *Handle, 'IO::Scalar';
という使い方が可能だ。
0448443
2001/08/17(金) 03:13ID:???>>445 あ、けっこうズバリなモジュールがあったんですね。
>>446
むつかしくて読むのにだいぶ時間かかりましたが、なんとなくわかりました。
ファイルハンドルを上書き実装して、バッファの後ろに足していってるんですね。
>>447 こういうふうに使うと、多分4行くらいでできますね。
>>436
モジュール調べてたらこんなの見つけた。
>FileCache:システムの制限よりも多くのファイルをオープンします
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmodlib.html#Standard_Modules
■ このスレッドは過去ログ倉庫に格納されています