【Perl】掲示板を使ろう! (506レス)
【Perl】掲示板を使ろう! http://medaka.5ch.io/test/read.cgi/php/988890976/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
78: _gunzip [ぺrlうせr@あねt。ね。jp] 2001/07/14(土) 08:49 ID:??? では二つ三つ.......。 -------------------------- キー名に英数字以外のものが含まれているとおかしくなりますね。 ("@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 => "http://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()を思い出した....。 例えば、スクリプト側で if( $thread->{ count }++ % 5 ){ $logfile->synchronize(); } としておけば問題ないね。 いくらかのパディングを余分に取っておいて、 更新された情報が元の場所に収まりそうならそのまま上書きし、 無理なら末尾に回す、とするのもイイかもかも。 http://medaka.5ch.io/test/read.cgi/php/988890976/78
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 428 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.006s