Perlについての質問箱 27箱目

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/10/31(火) 11:14:33
……
953デフォルトの名無しさん:2006/10/31(火) 11:19:55
あれ間違ってた?
954デフォルトの名無しさん:2006/10/31(火) 11:38:06
……
955デフォルトの名無しさん:2006/10/31(火) 12:19:34
>>950
あそういうことか
956デフォルトの名無しさん:2006/10/31(火) 12:48:52
957デフォルトの名無しさん:2006/10/31(火) 13:05:46
元ネタは>>935

>>948はとりあえずおかしい
送信までのプロセスや回線速度、戻ってきたものの処理(表示とか)
に時間はかかるかもしれないが、そのせいでサーバ側の処理が遅れることはない
サーバ側がレスポンスを待つようなら別だけど。
で、合ってますか?


>>951
しむらー!出力!出力!!
958デフォルトの名無しさん:2006/10/31(火) 13:19:59
>>957
もうすこし仕組みを勉強した方がいいよ。
959デフォルトの名無しさん:2006/10/31(火) 13:31:53
>>958
わかってんの?wwwwwww
960デフォルトの名無しさん:2006/10/31(火) 13:38:57
みなさん、ここは「質問箱」であることを忘れずに。

教育的指導を行なう際は、ヒントや、学習を始めるポイントを提示しましょう。
961957:2006/10/31(火) 13:53:09
>>958
どこが間違ってる教えてください。

この流れだと誰も正解を言わないと思ったので流れ変えたんです
まぁスレ違いですが。
962デフォルトの名無しさん:2006/10/31(火) 13:58:53
CGIでファイルをクライアントに送るとき、たいていは一度に全部読み込んで
送るようなコードは書かずに

while (バッファに適当な量読む) {
バッファを出力
}

みたいな書き方になるだろう。出力はは最終的にはOSのTCPスタックまで行くわけ
だが、クライアント側が読み出して残りがある一定量以下になるまではブロックする
ので、ここで待たされて先にはいかない。したがってファイルの読み出しも間欠的に
ちょろちょろ行われることになる。かかる時間をみるとクライアント側の読み出し時間
で大体決まる。読み出しのためにCPUなりIOなりが働いている時間はそのうちのごく
わずかではあるが。

もちろんメモリを豪華に使って最初に全部読み込んだり、mmap使ったりsendfile使ったり
するとまた話はいろいろ違ってくるだろうがね。
963デフォルトの名無しさん:2006/10/31(火) 14:04:29
難しいのは日本語だということがよくわかった
964デフォルトの名無しさん:2006/10/31(火) 14:09:36
>>957
罰として次スレ立てなさいw
965デフォルトの名無しさん:2006/10/31(火) 14:13:30
要はプログラムは標準出力という宅配ボックスの中にデータを
出来た物からポンポン放り込み、宅配業者はそれを自分のペースで
取ってくんでしょ。
966デフォルトの名無しさん:2006/10/31(火) 14:32:31
>>965
宅配ボックスがパムパムになるとプログラムは宅配業者を待つしかできなくなる。
967957:2006/10/31(火) 14:56:41
たててきました

Perlについての質問箱 28箱目
http://pc8.2ch.net/test/read.cgi/tech/1162273941/
968デフォルトの名無しさん:2006/10/31(火) 15:12:29
>>966
現実的にパンパンになるweb出力なんてあるのかい?
ストリーミングとかかい?
って、質問が何を10M、どう出力してんのか曖昧すぎて
話しにならん。 もうしーらねっと。
969948:2006/10/31(火) 16:21:00
>>957
>>>948はとりあえずおかしい

確かに日本語が曖昧だった。
オレはクライアントへの出力について言ったつもりで、
ファイルreadのつもりじゃなかった。
(ファイルreadがクライアント側と関係ないのは当たり前だと思ったので)

>>962が書いていることで良いんじゃまいか。
970935:2006/10/31(火) 16:24:50
どうもです。
とあるアップローダーを無料サーバーで運営しています。
認証しないとダウンできないようにCGIを介してダウンロードさせる
仕組みなのですが無料サーバーゆえに30秒以上たつとプロセスが自動で
終わってしまうのです。サーバー側のバッファに溜まると思ったのですが
違うようですね。低速の方の場合は途中で切れてしまうようなので他の事
考えて見ます。ありがとうこざいました。
CGIはだだ
ファイルを少し読み込んで出力のくりかえしです。



971デフォルトの名無しさん:2006/10/31(火) 16:38:39
どうみてもPerlと関係ない話です。
CGIの話は>>1のテンプレに従って他のスレでやってください。
972デフォルトの名無しさん:2006/10/31(火) 16:40:35
出力と、ソケットをごっちゃにしてる人がいるな。
973デフォルトの名無しさん:2006/10/31(火) 17:11:50
win32::OLEとsamieで IEを操作しようと思うのですが、
アドレスとソースの取得はどのようにやればいいのでしょうか?
974デフォルトの名無しさん:2006/10/31(火) 17:38:08
ume
975948:2006/10/31(火) 17:39:51

976943:2006/10/31(火) 18:12:21
>947
せいぜい100程度のオーダーなので、シュワルツ変換持ち出すまでもないかなぁ。
Module::Pluggableをつかっているので、はじめから優先度順に並べるとかできないのです。
plugin->prioriryも考えたのですが、優先度の高い順に試して、最初にマッチしたプラグインを
使うようにしたので、その案は取りやめました。

>949
自分で書いてみてどっちにしようか悩んでいたので、参考になりました。
>950さんが言っているとおり、priotrityが0の場合があるので、||は使えませんでした。

とりあえずシュワルツ変換を使った方法にしようと思います。ありがとうございました。
977デフォルトの名無しさん:2006/10/31(火) 18:30:38
質問です!

CSVファイルのデータを元に、テキストファイル内の語句の検索・置換を行いたい。

CSVファイル(数十万行)
あ,い
う,え
・・・・・

確認なしで一括置換

どのようにすればよいでしょうか?
もしくは、どこか参考になるサイトをご紹介ください。
978デフォルトの名無しさん:2006/10/31(火) 18:38:34
>>977
そのCSVファイルはデータとしてカンマや改行を含む? 含まない?
含まないなら本当のCSVとして全部解釈する必要がなくなるから
処理は簡略化できるよ。
979デフォルトの名無しさん:2006/10/31(火) 18:43:41
含みません。
980デフォルトの名無しさん:2006/10/31(火) 18:51:20
つエクセル
981デフォルトの名無しさん:2006/10/31(火) 19:30:16
うーん
エクセル、秀丸でやってみたんですけど、実行速度が遅すぎてどうにもなりません
そこで、文字列処理に強いと謳われている、perlで処理すれば、パッとできるのかな、と。

perlもエクセル程度の速度ですか?

そんなもんなんですか? perlって・・・・・・
982デフォルトの名無しさん:2006/10/31(火) 19:47:22
>>981
perlの方が断然早いはず。
ファイルの読み書きと正規表現の勉強が必要だね。
perl入門と言ってるまともなサイトなら、
だいたいどこでもやり方は書いてあると思う。
983デフォルトの名無しさん:2006/10/31(火) 20:02:41
早いですか!

1万行処理したぐらいで止まるようなアプリって、どうなんでしょうね

perlに期待です。
984デフォルトの名無しさん:2006/10/31(火) 20:29:40
perlエディタでお勧めのありますか?
985デフォルトの名無しさん:2006/10/31(火) 20:46:16
>>984
emacs
986デフォルトの名無しさん:2006/10/31(火) 21:48:27
>>984 ぶっちゃけJIS,ISO-2022,Shift_JIS,EUC-JP,UTF-8が扱えてればなんでもOK
987デフォルトの名無しさん:2006/10/31(火) 21:51:51
>>984
主要文字コードの文字と数値の対応表を全部暗記すればバイナリエディタでもおk
988デフォルトの名無しさん:2006/10/31(火) 21:54:47
>>984
vim
989デフォルトの名無しさん:2006/10/31(火) 21:58:23
>>979
じゃあ楽だな。
速度については処理によって微妙に変わる。

ところで具体的になにをどうしたいの?
990デフォルトの名無しさん:2006/10/31(火) 22:03:38
>>977
http://search.cpan.org/
でサチってみると幸福になれる。
991デフォルトの名無しさん:2006/10/31(火) 23:17:33
>>990
日本語でおk?
992デフォルトの名無しさん:2006/10/31(火) 23:35:01
読み込んだファイルの最初の空行以前と以後をそれぞれ別の配列に代入したくて

@retsu = <FH>;
push(@hai, shift @retsu) until ($retsu[-1] eq "\n");

こうしたのですが、いかにも効率が悪そうです。もっと良い方法はありますか。
993デフォルトの名無しさん:2006/10/31(火) 23:40:45
until するなら最初から while で回せよ(´・ω・`)
994デフォルトの名無しさん:2006/10/31(火) 23:42:53
読み込むときに別々にすりゃいいじゃん。
995デフォルトの名無しさん:2006/10/31(火) 23:50:09
>>993,994
もう何ヶ月も考えていますが浮かびません。具体例をください。
996デフォルトの名無しさん:2006/11/01(水) 00:05:21
while (<FH>) {
空行前 ? push (@前,$_) : push (@後,$_);
}
997977:2006/11/01(水) 00:05:53
全く解りません。

;;
998デフォルトの名無しさん:2006/11/01(水) 00:07:22
フラグ
999デフォルトの名無しさん:2006/11/01(水) 00:08:46
しゃぶれよ
1000デフォルトの名無しさん:2006/11/01(水) 00:09:24
日テレはルパンにひどいことをしたよね(´・ω・`)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。