【Perl】掲示板を使ろう! (504レス)
上下前次1-新
41: 名無しさん@お腹いっぱい。 2001/06/09(土)09:49 ID:??? AAS
>>40
なんで?落とせないか?
42: 名無しさん@お腹いっぱい。 2001/06/09(土)14:42 ID:??? AAS
mx使って認証してるのか?
@以下のアドレスを@geocities.co.jpとかでDLしろよ
43: 名無しさん@お腹いっぱい。 2001/06/09(土)16:10 ID:??? AAS
FTP ソフトで入れ。
44: 名無しさん@お腹いっぱい。 [妖怪シタタラズ] 2001/06/09(土)16:39 ID:??? AAS
>>39
use strictな掲示板ならどんなんれもいいのれすー
45(3): rubbish_lister 2001/06/11(月)22:47 ID:oKTfyTH6(1/2) AAS
panton氏のIndexedFile.pmを見ましたが、いいですねぇ。
BBSを作るのがかなり楽になりそうです。
恩恵に預かるだけでは良くはならないので、
ソース中で幾つか気になった点を書いておきます。
* line 154
これは
sub articles{ return @{ $_[0]->{_idxlist} } }
でいいのではないでしょうか。
* IO::File
IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
CGIスクリプトとしての動作が前提なので、軽くしてまずいという事は無いかと。
* "$_"
気付いておられると思いますが、
所々暗黙の$_を使用していますね。
これもついでに。
46(2): 名無しさん@お腹いっぱい。 2001/06/11(月)23:13 ID:??? AAS
>>45
素人&場違いで悪いんだけど
$_って駄目なの?
47(2): rubbish_lister 2001/06/11(月)23:30 ID:oKTfyTH6(2/2) AAS
>>46
いや、$_がダメってことは無いですよ。
ただ使うならばlocal宣言して欲しい…ということです。
# 消えるとまずいデータは極力$_に入れないようにしてはいますが
48: 46 2001/06/12(火)00:23 ID:??? AAS
>>47
そういう意味なんすか
サンクス
49: 初期不良 2001/06/12(火)01:00 ID:MAetbv9U(1) AAS
>>47
確かにそれ関係でばぐった時はちょっとやっかいだった
50: 名無しさん@お腹いっぱい。 [0] 2001/06/20(水)02:05 ID:??? AAS
ほういち氏は何処行った?
51(2): ウェブ作成初心者 2001/06/27(水)00:45 ID:DrGg5Duk(1) AAS
PERLなんて奇特なもんしりゃーせんです、ハイ。
知ってるのは“REMEMBER PEARL HABOR”くらいッス。
www.tripod.lycos.comとかはどうやって ウェブサイトや掲示板を作るかよくわかりません。
とりあえずトライポッドに無料サイトを開設して掲示板を設置したいのですが、
ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
メモ帳でcgiファイル?を作ってアップする?とか意味がわかるようでわからないです。
52: 名無しさん@お腹いっぱい。 2001/06/27(水)09:08 ID:??? AAS
>>51 死ね。
53: 名無しさん@お腹いっぱい。 2001/06/27(水)09:11 ID:??? AAS
>ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
プ
54: 名無しさん@お腹いっぱい。 2001/06/27(水)13:30 ID:??? AAS
>>51
知らなかったら勉強しろ。
ここでも逝け。
外部リンク:wakusei.cplaza.ne.jp
ネタニマジレスカナ
55(2): 名無しさん@お腹いっぱい。 2001/06/29(金)02:23 ID:4xodowQE(1/2) AAS
いま掲示版作っています。
データファイルをCSVに使用と思ってるのですが、CSVって、クオーテーションマークだけをエスケープすれば委員ですよね。
あと、CRとかLFとかもエスケープしたいのですが、どうすればいいですか・?
<br>に変換するにはあんまり美しくない気がして。
56: 名無しさん@お腹いっぱい。 2001/06/29(金)02:33 ID:4xodowQE(2/2) AAS
うん
57: 名無しさん@お腹いっぱい。 2001/06/29(金)02:37 ID:??? AAS
>>55
パーサの仕様によっては、カンマもエスケープの必要有りでは?
58(3): 名無しさん@お腹いっぱい。 2001/06/29(金)11:56 ID:HUBABICM(1/2) AAS
>>55
CRLFも、クオーテーションマークでくくれば、
エスケープの必要なし。
59: 58 2001/06/29(金)11:57 ID:HUBABICM(2/2) AAS
惜しい、もうすこしでIDがBASICだったのに…
60: 名無しさん@お腹いっぱい。 2001/06/29(金)14:32 ID:??? AAS
>>58
ただのBASICではなくてHu-BASICだというところが泣かせる。
61: 名無しさん@お腹いっぱい。 [0] 2001/06/29(金)18:52 ID:??? AAS
>>58
改行はだめだろ、レコード区切りだから
ところで、CSVの仕様書ってどこかにあるの?
62: 名無しさん@お腹いっぱい。 2001/06/30(土)20:10 ID:rUTTiUww(1) AAS
CSVについて
" " で囲みさえすれば、エスケープする必要があるのは、" 自身だけではないのでしょうか。
63: 名無しさん@お腹いっぱい。 [0] 2001/06/30(土)20:18 ID:??? AAS
掲示板のデータファイルを考えているのですね。
CSVのモジュールを使えば、そんなこと考えなくてもいいのでは。
64: あぼーん [あぼーん] AAS
あぼーん
65: 名無しさん@お腹いっぱい。 2001/07/01(日)09:11 ID:Q4XVcLok(1) AAS
uzee
66: panton 2001/07/04(水)04:10 ID:iYqhBR52(1) AAS
>>45 rubbish_lister様
遅レスで申し訳ないです。
> * line 154
> これは
> sub articles{ return @{ $_[0]->{_idxlist} } }
> でいいのではないでしょうか。
あれ?こうすると、配列でなくリストで返されて、スカラーコンテキストだと、
採用されるのは要素数ではなく最後の要素になっちゃうと思ったんですけど、
違うんですね。勉強になりました。
オーバーヘッド的にはどうなんでしょう?
挙動から予想すると、配列全部ではなく、
要素数が帰ってるみたいなので、大丈夫なんでしょうか?
IO:Fileはそのとおりです。
以前TODOに入れてたような気がしたけど、ないですね。TODOで。
$_ は個人的に混乱しない限り使わせていただきます。
Perl大好きっ子なんで。
67: 名無しさん@お腹いっぱい。 [age] 2001/07/06(金)22:51 ID:??? AAS
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < さっぱりだよ。
〜(___ノ \_______________
68(1): 名無しさん@お腹いっぱい。 [ ] 2001/07/08(日)17:52 ID:??? AAS
初歩的な質問ですみませんが、
データファイルって、読み込みの時にもロックした方がいいですか?
それから、レスを多次元配列に入れてから書き出したいのですが、
配列全体のサイズが100KBとかになっても問題ないですか
69(3): 名無しさん@お腹いっぱい。 2001/07/09(月)00:38 ID:vYQpj6T6(1) AAS
>>68
おれはflockが使えるときは読み込みのときでも
flock(FILE, LOCK_SH) ってやってるよ。
ただしsymlinkを使ったりする場合は読み込みではロックしない。
配列サイズは、サーバのメモリ容量とアクセス頻度を考慮して
判断すべきだから一概にいえないけど、
うちの環境では100KBならまず気にしない。1MBだと気にするかも。
70(1): 名無しさん@お腹いっぱい。 2001/07/09(月)10:12 ID:8Wkoq3g6(1) AAS
>69
気にしてください、お願いします
71: 名無しさん@お腹いっぱい。 2001/07/09(月)10:21 ID:??? AAS
専用鯖なんじゃないの?
共用鯖だったら締め頃したくなるところだが
72: 名無しさん@お腹いっぱい。 [ ] 2001/07/09(月)10:34 ID:??? AAS
>>70
そっか、そうすると
たとえばデータファイルで100行分、まあ、レス100を表示するとすると、
データファールから1行読み込んで、書き出し、1行読み込んで書き出し
みたいにするのが現実的デスカ。
たとえばスレッドID、はじめのレス番号、最後のレス番号を与えると、
そのレスの内容を配列で返す。みたいな関数を作って、というのが楽そうだったのだけど、
あまりおすすめできないと言うことですね。
73(1): 名無しさん@お腹いっぱい。 [0] 2001/07/09(月)11:06 ID:??? AAS
そうすると、>>69はファイルロックの話も含めて、ネタか?
74: 名無しさん@お腹いっぱい。 [ ] 2001/07/10(火)22:56 ID:??? AAS
>>73
ファイルロックは必要。しないとログファイル壊れるよ。
75: 名無しさん@お腹いっぱい。 2001/07/10(火)23:59 ID:??? AAS
更新時に、
lock
更新対象読み込み
更新対象変更
更新対象書き込み
unlock
すれば、壊れないよ。
ただ、更新中に読む奴がいたら表示は狂う。
いちばんいいのは、全部一時ファイルに書き出して一気にrename。
これなら事実上ほとんど表示も狂わない。
ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。
76: panton 2001/07/14(土)06:17 ID:8g/6IMoE(1/2) AAS
オヒザシブリデゴザイマス
IndexedFile.pm を更新しました。
外部リンク[pm]:www.panton.f2s.com
外部リンク[html]:www.panton.f2s.com
IO::Fileの使用廃止と、色々バグ修正があります。
前のバージョンには重大なバグがありました。
見つからなかったってことは、全然使われてねーんだな。
っと思って、手抜きテスト用ボードなんか用意してみました。
外部リンク[txt]:www.panton.f2s.com
外部リンク[txt]:www.panton.f2s.com (ソース)
たいしてテストしてないのでまだバグあるでしょう、・・見つけてよーん。
77: panton 2001/07/14(土)06:19 ID:8g/6IMoE(2/2) AAS
ぶっ、やっちまった。
外部リンク[cgi]:www.panton.f2s.com
テスト用ボードはこちらでございます。
78: _gunzip [ぺrlうせr@あねt。ね。jp] 2001/07/14(土)08:49 ID:??? AAS
では二つ三つ.......。
--------------------------
キー名に英数字以外のものが含まれているとおかしくなりますね。
("@threads"とか"perl-user"とか。)
196行目の
>my %hash = ('DUMMY', split /^(\w+?):/m, readline($self->_dathandle));
を
my %hash = ('DUMMY', split /^(.+?):/m, readline($self->_dathandle));
にすれば回避は出来ますが...。
--------------------------
modify_row()使用時、更新されたデータは、
データファイルの末尾に追加+インデックス更新されるわけですが、
頻繁に同じ項目を更新するような場合、ファイルの肥大化が問題にならないかな....。
例えば、掲示板のスレッド毎に情報をハッシュの形で格納してある場合
%thread = (
count => 77, #投稿数
subject => "【Perl】掲示板を使ろう!",
key => 988890976,
server => "外部リンク:corn.2ch.net",
dir => "php"
);
投稿がある→そのスレッドの情報を取得( get_by_id() )→(何らかの処理)
→投稿数をインクリメント→スレッド情報更新( modify_row() )
Ex.
$thread = $logfile->get_by_id($id);
$thread->{ count }++;
$logfile->modify_row($id, $thread);
とすると、投稿の度にハッシュ$threadの内容は末尾に追加されるので
(スレッドの情報ログのサイズ) = ( (スレッドの情報サイズ) * (投稿回数) ) * (スレッド数)
になってしまいますね。
・・・と、ここまで書いたときにsynchronize()を思い出した....。
省8
79: _gunzip [p_e_r_l_u_s_e_r] 2001/07/14(土)08:49 ID:??? AAS
あと、198行目の
>chomp $hash{$_} foreach keys %hash;
は、スライスで
chomp @hash{ keys %hash };
と書けたりします。(参考までに)
80: 名無しさん@お腹いっぱい。 [いちちちちt] 2001/07/15(日)07:23 ID:??? AAS
あっげ
81(2): 名無しさん@お腹いっぱい。 2001/07/16(月)17:17 ID:??? AAS
はじめまして。現在機能優先で掲示板を作っていて、コードの
効率は後回し中なのですが、いくつか質問があります。
・一般ではOpenでテキストを読み書きするのが多いようですが、
(MINIBBS程度の規模でも)TieやDBOPENを使ったものが見かけないのは
なぜですか?負荷について問題があるのでしょうか?
・発言データに関して、追加書き込みモードを基本にしてもファイルロックは
必要でしょうか?またどの程度の堅牢性を期待すべきでしょうか?
・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
していますが、While(<FILE>)やその他の方法のうち、お勧め
なのはどれでしょうか?また、Seekを使った読み出しについて
教えてくださいませんか?
82(1): panton 2001/07/16(月)19:29 ID:YjhPdxYw(1) AAS
>>81
ageで書いてもいいんじゃないかと思うけどなんでsage?
> ・TieやDBOPENを使ったものが見かけないのはなぜですか?
> 負荷について問題があるのでしょうか
掲示板の場合リニアなデータ構造が多いのでハッシュがメインの
タイは不向きといえば不向き。配列を結びつける事も出来るが、
インターフェイスが不完全。
> ・追加書き込みモードを基本にしてもファイルロックは
> 必要でしょうか?
必要です。堅牢性についてはデータの重要性によります。
> ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
> していますが、While(<FILE>)やその他の方法のうち、お勧め
> なのはどれでしょうか?
>>69あたりからを読んでください。
seekに関しては、固定長なら使えるけど、掲示板のように
データ長が不定なデータだと不向き。
そこら辺を解決するためにIndexedFile.pmを作ってるんですが・・・
83(1): 名無しさん@お腹いっぱい。 2001/07/16(月)19:58 ID:SlpU2cdo(1) AAS
>>82
age忘れです。
リニアな構造ということですが、発言IDやTIMEをキーにして
残りは従来のままスカラーでもよいと思ったんですが、、、。
負荷についてわからないというのは、ハッシュでは数百発言とも
なると負荷がかかるのかとか、あるいは値のサイズによって
負荷が変わるのかとかも考えたのですが。
追加書き込みモードについては、一般に恐れているのは
全部読み出し>退避+追加>全部書き出しの過程での全データ
消失だと思うので、追加書き込みでの危険性があまり認識
できないのです。
84(1): panton 2001/07/17(火)15:17 ID:/BDSxh5c(1) AAS
>>83
リニアというのは、掲示板は発言の並びに順番があるということです。
TIMEなどをキーにしてkeysでsortなんかをすることも出来ますが、
DBMの起動オーバーヘッドなんかを考えると、
あえて使う必要も無いかなという程度です。
記事数や値のサイズによる負荷の増加は気にするほどではないと思いますが、
よく知りません。
ファイルロックについては、いろんなところで調べてみるといいと思います。
追記モードでも同時に起こると、ファイルの同じ位置に書き込もうとして
データがおかしくなります。
85(2): 名無しさん@お腹いっぱい。 2001/07/17(火)17:07 ID:sUEgTyfs(1) AAS
>>84
ありがとうございます。
あと他にも、疑問が生じたときに、理由は自分で考えてみたのですが
これでいいのでしょうか?
while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
早くcloseを行うのでよさげ
・・・・>読み込み時は共有可、書き込み時はどっちみちロック
ANHTTP環境ではflock不可
・・・・>Renameロックかflockコメント化で我慢
全読み>全書き込みvs追加モード
・・・・>ファイルアクセスより管理性重視?
レスポンスお願いします。
86(1): 名無しさん@お腹いっぱい。 [0] 2001/07/17(火)19:00 ID:??? AAS
特定の行を抜き出すとき、
$line = (<FILE>)[5];
っていう方法はどうなんですかね。
87: 名無しさん@お腹いっぱい。 2001/07/17(火)19:12 ID:HRgjK2II(1) AAS
>>86
それは最悪でしょう。
そいういうものこそDB_FileのDB_RECNOを使うほうが良いと思いますがね。
88(1): 名無しさん@お腹いっぱい。 2001/07/17(火)19:13 ID:??? AAS
なして最悪?
89: 名無しさん@お腹いっぱい。 2001/07/17(火)22:22 ID:??? AAS
>>85
> while (<FILE>)よりも@line <FILE>のほうが
なんでそんな結論になったのか知らないけど、普通ダメ。過去ログ読めよ。
> ANHTTP環境ではflock不可
HTTPDとflockは関係ありません。
> 全読み>全書き込みvs追加モード
質問の意味がわかりません。
なんか基本的なところがわかってないんじゃない?
CGI-MLとかの過去ログでも漁って勉強してきましょう。
>>88
全部読み込んでから[5]だけ残して他は捨てるっていう動作。
90(1): 名無しさん@お腹いっぱい。 2001/07/18(水)01:34 ID:??? AAS
>>85
> while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
> 早くcloseを行うのでよさげ
いくらclose()したって、ねぇ…。
89さんの言う通り、避けるべきかと。
「負荷」とか「メモリ」という言葉を(以下略
91(3): 名無しさん@お腹いっぱい。 2001/07/18(水)13:28 ID:aJuOjafs(1) AAS
>>90
それは今になってみたら分かります。が、
初心者はこんなことを思っていたという、、、、。
>> ANHTTP環境ではflock不可
>HTTPDとflockは関係ありません。
御免なさい、WIN95+ActivePerl+〜というべきでした。
>> 全読み>全書き込みvs追加モード
>質問の意味がわかりません。
何で追加モードがあるのに、わざわざ全読み全書き込みするのか、という
ことです。
92: 名無しさん@お腹いっぱい。 2001/07/18(水)19:10 ID:??? AAS
>>91
つまり貴方には「全読み込み+全書き込み」と「追加書き」が同じ様に思えると?
正直ワケ分かりませんが。
93: 名無しさん@お腹いっぱい。 2001/07/19(木)04:20 ID:??? AAS
>>91
追加は追加。増える一方。
書き換えも行わない。
全読み全書きは、中途での処理の可能性を残している。
本当に全部書いてるのか?
加えて、書き換えてるんなら同じじゃない。
実際にテストして考えてから書き込んでくれ。
94(2): 名無しさん@お腹いっぱい。 2001/07/19(木)04:23 ID:??? AAS
>>91
flockは evalかけろ。
95(1): 名無しさん@お腹いっぱい。 2001/07/19(木)13:12 ID:??? AAS
(既存の掲示板スクリプトは)何で追加モードが・・・
ってこと?
そういうのばかりでもないし、そうする必要があるのかもしれないし、
ただ馬鹿なだけかもしれない。
どっちにしろ他人のスクリプトなんてどうで良い。
96(1): 名無しさん@お腹いっぱい。 2001/07/19(木)15:48 ID:??? AAS
>>94
flockはevalかけるな。
97: 名無しさん@お腹いっぱい。 [____________________] 2001/07/19(木)17:50 ID:??? AAS
.
98: 名無しさん@お腹いっぱい。 2001/07/19(木)19:13 ID:FUSlV7zU(1) AAS
>>95
納得。 レス感謝
あとはレス行為に感謝
99: 名無しさん@お腹いっぱい。 2001/07/19(木)21:37 ID:1tfXBWXc(1) AAS
>>96 >>94
どっちなの
100(1): 名無しさん@お腹いっぱい。 2001/07/19(木)21:44 ID:??? AAS
eval{flock(FILE,2)};
eval{flock(FILE,8)};
flockはevalをかければ非対応の環境でも致命的エラーにならない。
101: 名無しさん@お腹いっぱい。 2001/07/19(木)21:54 ID:??? AAS
そんな貴方に
set PERL5OPT=-m-flock
flock.pmは自分で用意してね♥
102: 名無しさん@お腹いっぱい。 2001/07/20(金)00:21 ID:??? AAS
>>100
その代わり実は効いていないのに気がつかない可能性がある
103(4): 名無しさん@お腹いっぱい。 2001/07/20(金)01:19 ID:AwYw1thE(1/4) AAS
#!/usr/local/bin/perl
use CGI $a=new CGI;print"Content-type: text/html\n\n<form action=n.cgi>";
print"<input name=n><input name=t>\n";$n=$a->param('n'),$t=$a->param('t');
if($t){$t=~s/,|<|>|:/*/g;if(!$n){$n="名無しさん@お腹いっぱい";}open(I,">>y"),print I"$n,$t\n";}
open(I,"y"),@I=<I>;for($i=$#i;$i>$#i-10;$i--){($j,$k)=split(/\,/,$I[$i]),print"<hr>$j: $k";}
5行
104: 103 2001/07/20(金)01:29 ID:AwYw1thE(2/4) AAS
一時間で書いたから最低なソースだ。
素人丸出し。
でも一応動く。
動けばいいよね。
だめ?
105: 名無しさん@お腹いっぱい。 2001/07/20(金)01:32 ID:WE74UShE(1/2) AAS
?
106: 名無しさん@お腹いっぱい。 2001/07/20(金)01:34 ID:WE74UShE(2/2) AAS
あっ 掲示板か ゴメ
107: わ、 2001/07/20(金)03:36 ID:O.8zSDuM(1) AAS
age
108: 103 2001/07/20(金)21:47 ID:AwYw1thE(3/4) AAS
#!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form action=n.cgi><input
name=b><br><input name=c>";($b,$c)=($a->param('b'),$a->param('c'));
if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無しさん";}open(A,">>d");
print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f;
少しだけ短くなったかな?
109: 103 = 108 2001/07/20(金)22:30 ID:AwYw1thE(4/4) AAS
なんかアドバイスきぼーん。
もっと短くしたいです。
110: 名無しさん@お腹いっぱい。 2001/07/20(金)22:33 ID:??? AAS
CGI.pmをつかって「もっと短く」と言われてもなぁ…と思ってしまう。
111: 103 2001/07/21(土)10:50 ID:??? AAS
#!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form><input name=b><br><input name=c>";
($b,$c)=($a->param('b'),$a->param('c'));if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無し";}
open(A,">>d");print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f;
<form action=n.cgi> => <form> #actionはデフォルトで自分自身らしい。
名無しさん => 名無し #これはどうでもいいか・・・。
これで横に長いが何とか4行
112(1): JAPU 2001/07/21(土)16:18 ID:??? AAS
どうでもよい話かもしれないが、actionは#REQUIREDです。
113(1): 名無しさん@お腹いっぱい。 2001/07/21(土)17:04 ID:??? AAS
>>112
DOCTYPE宣言がない以上ほんとにどうでもよい話ですね。
114: 103 2001/07/21(土)20:30 ID:??? AAS
#!/usr/local/bin/perl
use CGI $a=new CGI;print$a->header,"<form><input name=b>";$b=$a->param('b');
if($b){$b=~s/</</g;open(A,">>c");print A"$b";}open(A,"c");print<A>;
これ以上はむりかな。
だんだん飽きてきた。
つーかこんなのは掲示板じゃない。
115: 名無しさん@お腹いっぱい。 2001/07/26(木)11:54 ID:.3Y7gM7s(1) AAS
何で止まっちゃったの?
116: JAPU [AyuMoe@REMOVE-THIS-PART.JAPU.ORG] 2001/07/26(木)13:52 ID:??? AAS
>>113
一応補足しておくと、action が #REQUIRED である限りクライアントによってはうまく動作しないことがあるかも知れないという意味を含めていました。
117(1): 名無しさん@お腹いっぱい。 2001/07/27(金)20:56 ID:6tE5j.uU(1) AAS
JAPU死ね
118(1): 名無しさん@お腹いっぱい。 2001/07/27(金)21:47 ID:??? AAS
>>117
いきなりなんなんだチミわ
119: 名無しさん@お腹いっぱい。 [ ] 2001/07/27(金)21:48 ID:??? AAS
JAPUさん、負けないで。
120: 名無しさん@お腹いっぱい。 2001/07/27(金)22:43 ID:??? AAS
>>118
ただの夏房だから放置が吉。
121: panton 2001/08/19(日)03:50 ID:Mz6GQnDY(1) AAS
沈みすぎなのでアゲ。
IndexFile.pm改め、IxFile.pmを作りました。
ハッシュだけでなく配列やスカラなどにも対応。
データ構造が変わったので、IndexedFile.pm とはデータ互換性なしです。
詳しくは、
外部リンク[html]:www.panton.f2s.com
外部リンク[gz]:www.panton.f2s.com (ブツ)
外部リンク[cgi]:www.panton.f2s.com (テスト用掲示板)
122: 名無しさん@お腹いっぱい。 2001/08/24(金)05:23 ID:DAq2T8i2(1) AAS
何気にVerアプ期待してまっせ
123: 名無しさん@お腹いっぱい。 [0] 2001/08/24(金)17:32 ID:??? AAS
外部リンク[cgi]:script.lovely.to
ほういち氏発見!連行せよ。
124: xx [xx] 2001/08/24(金)17:38 ID:??? AAS
xxx
125: 名無しさん@お腹いっぱい。 [sage ] 2001/08/24(金)18:02 ID:??? AAS
あ、ホントだ (^^
開発に疲れちゃったんだろーなー
126: 名無しさん@お腹いっぱい。 2001/08/24(金)19:48 ID:??? AAS
>>ほういち氏
八月半ばに他のQ&A-BBSでも見かけたよ。
でも2chにはこない…。
127: 名無しさん@お腹いっぱい。 01/09/07 18:48 ID:bc3oxQQc(1) AAS
定期age
128: 名無しさん@お腹いっぱい。 01/09/08 02:44 ID:??? AAS
タイトルのtypo発見した、ちょっとトクした気分だ。。。
129: 名無しさん@お腹いっぱい。 01/09/10 19:41 ID:72uN3czc(1) AAS
use base 'IxFile';で継承すると
殆どのフィールドを継承できない(フィールド名が_で始まっている為)のですが、
それは仕様ですか?
130: panton [age] 01/09/10 20:07 ID:??? AAS
お、意外にも使おうとしている方が・・・
仕様と言えば仕様ですね。
お好みで適当に変えちゃってください。
ただ、今全面的に仕様変更考えてるので微妙です。
特に、インデックスの内部保持方法とその保存形式、
ハッシュや配列へのTieインターフェイスとかいろいろ。
仕事忙しいのでいつになるかわからないけど・・・
なんか意見あったら言ってください。
131: 名無しさん@お腹いっぱい。 01/09/10 21:52 ID:??? AAS
ナルホド。
弄り始めたばかりですし、特に今のところ意見は無いです。
応援してますんで頑張ってください。
132: 名無しさん@お腹いっぱい。 01/09/12 16:10 ID:Hityt.0Q(1) AAS
age
133: 名無しさん@お腹いっぱい。 01/10/13 06:53 ID:WnJyL/5M(1/2) AAS
あげとく。もう捨てられたスレなのか?
134: 名無しさん@お腹いっぱい。 01/10/13 15:25 ID:??? AAS
「〜を作ろう」っていうスレで何かが完成した験しは全然無いな。
135(2): 名無しさん@お腹いっぱい。 01/10/13 15:29 ID:??? AAS
# IxFile拡張
# IxFIle::clear - IxFileデータベースをクリアする
# $status = clear $ixf;
sub IxFile::clear{
my IxFile $self = shift;
$self->_initialize(2);
$self->{_pointer} = 0;
$self->{_stat} = 0;
$self->{_idxlist} = [];
$self->{_idxhash} = {};
my $idx_ok = truncate $self->_idxhandle, 0;
my $dat_ok = truncate $self->_dathandle, 0;
return $idx_ok && $dat_ok;
}
136: panton 01/10/13 20:32 ID:WnJyL/5M(2/2) AAS
>>135さん
ありがとうございます。clear メソッドはあったほうが良いですね。
マージさせていただいて良いですか?
関係ない話ですけど、
Apache::AntiSpam::HTMLEncodeを見てて、
メールアドレスの一部分だけでもHTML Entitiesに変換すれば、
ロボットのアドレス収集対策にかなり有効なんじゃないかと思いました。
たとえば、?anton@f2s.com とかみたいに。
もっとも、HTML Entitiesを解釈するロボットがあると元も子も無いけど。
137: panton 01/10/13 20:36 ID:??? AAS
あれ、&#112;anton って書いたつもりだったのに・・
bbs.cgiの仕様変わったのかな?
てすと: & > <
138(1): 135 01/10/13 20:51 ID:??? AAS
> マージ
そのつもりで書いたので遠慮なくどーぞ。
> アドレス収集ロボ対策
JAPUさんが会社でやってますね。
ってあまり宣伝しすぎると効果が無くなるんでしょうけど。
139: panton 01/10/13 21:05 ID:??? AAS
s/&#[\d;]*/?/g って感じかな。
>>138
ありがとうございます。
ロボット対策> あら、ほんとですね。さすが。<- JAPUさん
140: 名無しさん@お腹いっぱい。 [あげ〜〜] 01/10/31 23:12 ID:??? AAS
このスレ終わっちゃったのカー (゚д゚lll)
テキストに飽きてきたから、使ってみるう
141: 名無しさん@お腹いっぱい。 01/11/22 15:56 ID:GCw1giJk(1) AAS
終わっちゃったんですか?
142: panton 01/11/22 17:15 ID:??? AAS
おれはいますよ。すんません。
仕事に殺されています。<-言い訳。
143(1): 名無しさん@お腹いっぱい。 01/11/22 22:31 ID:??? AAS
IxFileの配列版File::Arrayを構想中。
144(1): 名無しさん@お腹いっぱい。 01/11/30 03:03 ID:??? AAS
>>45
> * IO::File
> IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
根拠は?たかだか3889バイトですが?
# と、Google検索でここにきたのでついでに書き込むテスト
145: 名無しさん@お腹いっぱい。 01/11/30 03:04 ID:??? AAS
しかもコメントを除くともっと少ないし :)
146: panton 01/11/30 22:49 ID:??? AAS
>>144
IO::Fileは
Carp、Symbol、SelectSaver、IO::Seekable、File::Spec
といろんなモジュールを呼んでますし、呼ばれたモジュールも
色々モジュールを呼んでるので全部あわせると結構な量です。
147(1): 名無しさん@お腹いっぱい。 01/12/06 20:53 ID:u8ht0k3R(1) AAS
slashdot型掲示板作られた方は
いませんか?
148: 名無しさん@お腹いっぱい。 01/12/07 00:21 ID:??? AAS
slashdotってひたすら流れがつかみにくいと感じるのは俺だけ?
149: 名無しさん@お腹いっぱい。 01/12/07 00:39 ID:ChN9PGvZ(1) AAS
YaBBで似たようなことできるね。
ニュース系サイトなら更新するのに
わざわざ、エディタ&FTP使わなくても
ブラウザだけで更新できるから便利だと思うんです。
150: 名無しさん@お腹いっぱい。 01/12/27 03:02 ID:3egvuP0s(1) AAS
あげ
151: 名無しさん@お腹いっぱい。 01/12/27 03:28 ID:??? AAS
>>147
slashdotならslashcode持ってくればいいのでは?
152: 名無しさん@お腹いっぱい。 01/12/31 00:47 ID:??? AAS
ふと思いついて>>143をFileIxって名前で作ってみました。
速度は(Perlということを踏まえた上で)まずまず高速です。
ビルトイン配列とほぼ同じインターフェイスで扱えるのが楽です。
アップしましょうか?
153: 名無しさん@お腹いっぱい。 [あげ!] 02/01/16 17:51 ID:??? AAS
私がたまたまこのスレを見たのも何かの縁でしょうからよろしければアプしてください。
外部リンク[cgi]:isweb36.infoseek.co.jp
154(1): ◆wfMSpsRY 02/01/16 18:00 ID:??? AAS
>■570氏
> ▽サンプル掲示板
> 外部リンク[html]:maasa.antique.to
過去の遺物が晒されとる(w
155(1): 名無しさん@お腹いっぱい。 02/01/20 15:46 ID:??? AAS
>>154 1.5ちゃんねるも遺物になったりして。。(笑
156: 名無しさん@お腹いっぱい。 02/01/28 00:58 ID:aMapBeA5(1) AAS
使ろう!
157: あぼーん [あぼーん] AAS
あぼーん
158: ◆wfMSpsRY 02/01/28 09:31 ID:??? AAS
>>155
禁句です (w
159: 02/03/10 00:28 ID:IS9JbIjK(1) AAS
age
160(1): 掲示板初心者 [ ] 02/03/16 20:48 ID:??? AAS
Perl超初心者なんですけど、
ログの処理を一気に配列化して読み込むと負荷が高いと聞いたので、
1件1件処理するようにしたいのですが、
それはどうやればできるのですか?
161: 02/03/16 21:28 ID:??? AAS
>>160
foreach関数
162: 02/03/16 21:35 ID:??? AAS
それじゃダメでしょ
while関数
163(1): 掲示板初心者 [ ] 02/03/16 21:38 ID:??? AAS
kentさんはforeach関数で重いらしいんですけど、やっぱりwhileなんですかね?
164(1): 02/03/16 21:50 ID:2F4VnaKu(1) AAS
>>163
while使えるところだったらみんな使った方がいいよ。
165: 掲示板初心者 [ ] 02/03/16 21:53 ID:??? AAS
>>164
ごめんなさい。なぜですか?
166: 02/03/16 21:59 ID:??? AAS
foreachだとファイルの中身を全部配列に展開するからメモリを食う。
167: 掲示板初心者 [ ] 02/03/16 22:06 ID:??? AAS
遭難ですか!!
ありがとうございました。
上下前次1-新書関写板覧索設栞歴
あと 337 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s