-前スレッド http://tako.2ch.net/test/read.cgi?bbs=perl&key=959378033&ls=50
-PHP版 http://corn.2ch.net/test/read.cgi?bbs=php&key=982779383&ls=50
今のところのまとめ。
■ほういち氏
▽サンプル掲示板
http://www13.big.or.jp/~bell/nanashi/perl/
▽ソースコード
http://www13.big.or.jp/~bell/cgi-bin/files/
http://xbbs21.virtualave.net/xbbs/up/src/up010.lzh
■347氏
▽サンプル掲示板
http://takotubo.virtualave.net/bin/board.cgi
▽ソースコード
http://xbbs21.virtualave.net/xbbs/up/src/up022.lzh
■570氏
▽サンプル掲示板
http://maasa.antique.to/2ch/sample/index.html
■panton氏
▽ソースコード
http://www.panton.f2s.com/bbs/lib/IndexedFile.html
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm.txt
【Perl】掲示板を使ろう!
1名無しさん@お腹いっぱい。
2001/05/03(木) 20:56ID:lB9ErFH.2001/06/11(月) 23:13ID:???
47rubbish_lister
2001/06/11(月) 23:30ID:oKTfyTH649初期不良
2001/06/12(火) 01:00ID:MAetbv9U >>47
確かにそれ関係でばぐった時はちょっとやっかいだった
確かにそれ関係でばぐった時はちょっとやっかいだった
2001/06/20(水) 02:05ID:???
ほういち氏は何処行った?
51ウェブ作成初心者
2001/06/27(水) 00:45ID:DrGg5Duk PERLなんて奇特なもんしりゃーせんです、ハイ。
知ってるのは“REMEMBER PEARL HABOR”くらいッス。
www.tripod.lycos.comとかはどうやって ウェブサイトや掲示板を作るかよくわかりません。
とりあえずトライポッドに無料サイトを開設して掲示板を設置したいのですが、
ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
メモ帳でcgiファイル?を作ってアップする?とか意味がわかるようでわからないです。
知ってるのは“REMEMBER PEARL HABOR”くらいッス。
www.tripod.lycos.comとかはどうやって ウェブサイトや掲示板を作るかよくわかりません。
とりあえずトライポッドに無料サイトを開設して掲示板を設置したいのですが、
ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
メモ帳でcgiファイル?を作ってアップする?とか意味がわかるようでわからないです。
2001/06/27(水) 09:08ID:???
>>51 死ね。
2001/06/27(水) 09:11ID:???
>ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。
プ
プ
2001/06/27(水) 13:30ID:???
55名無しさん@お腹いっぱい。
2001/06/29(金) 02:23ID:4xodowQE いま掲示版作っています。
データファイルをCSVに使用と思ってるのですが、CSVって、クオーテーションマークだけをエスケープすれば委員ですよね。
あと、CRとかLFとかもエスケープしたいのですが、どうすればいいですか・?
<br>に変換するにはあんまり美しくない気がして。
データファイルをCSVに使用と思ってるのですが、CSVって、クオーテーションマークだけをエスケープすれば委員ですよね。
あと、CRとかLFとかもエスケープしたいのですが、どうすればいいですか・?
<br>に変換するにはあんまり美しくない気がして。
56名無しさん@お腹いっぱい。
2001/06/29(金) 02:33ID:4xodowQE うん
2001/06/29(金) 02:37ID:???
>>55
パーサの仕様によっては、カンマもエスケープの必要有りでは?
パーサの仕様によっては、カンマもエスケープの必要有りでは?
58名無しさん@お腹いっぱい。
2001/06/29(金) 11:56ID:HUBABICM5958
2001/06/29(金) 11:57ID:HUBABICM 惜しい、もうすこしでIDがBASICだったのに…
2001/06/29(金) 14:32ID:???
>>58
ただのBASICではなくてHu-BASICだというところが泣かせる。
ただのBASICではなくてHu-BASICだというところが泣かせる。
2001/06/29(金) 18:52ID:???
62名無しさん@お腹いっぱい。
2001/06/30(土) 20:10ID:rUTTiUww CSVについて
" " で囲みさえすれば、エスケープする必要があるのは、" 自身だけではないのでしょうか。
" " で囲みさえすれば、エスケープする必要があるのは、" 自身だけではないのでしょうか。
2001/06/30(土) 20:18ID:???
掲示板のデータファイルを考えているのですね。
CSVのモジュールを使えば、そんなこと考えなくてもいいのでは。
CSVのモジュールを使えば、そんなこと考えなくてもいいのでは。
64あぼーん
NGNGあぼーん
65名無しさん@お腹いっぱい。
2001/07/01(日) 09:11ID:Q4XVcLok uzee
66panton
2001/07/04(水) 04:10ID:iYqhBR52 >>45 rubbish_lister様
遅レスで申し訳ないです。
> * line 154
> これは
> sub articles{ return @{ $_[0]->{_idxlist} } }
> でいいのではないでしょうか。
あれ?こうすると、配列でなくリストで返されて、スカラーコンテキストだと、
採用されるのは要素数ではなく最後の要素になっちゃうと思ったんですけど、
違うんですね。勉強になりました。
オーバーヘッド的にはどうなんでしょう?
挙動から予想すると、配列全部ではなく、
要素数が帰ってるみたいなので、大丈夫なんでしょうか?
IO:Fileはそのとおりです。
以前TODOに入れてたような気がしたけど、ないですね。TODOで。
$_ は個人的に混乱しない限り使わせていただきます。
Perl大好きっ子なんで。
遅レスで申し訳ないです。
> * line 154
> これは
> sub articles{ return @{ $_[0]->{_idxlist} } }
> でいいのではないでしょうか。
あれ?こうすると、配列でなくリストで返されて、スカラーコンテキストだと、
採用されるのは要素数ではなく最後の要素になっちゃうと思ったんですけど、
違うんですね。勉強になりました。
オーバーヘッド的にはどうなんでしょう?
挙動から予想すると、配列全部ではなく、
要素数が帰ってるみたいなので、大丈夫なんでしょうか?
IO:Fileはそのとおりです。
以前TODOに入れてたような気がしたけど、ないですね。TODOで。
$_ は個人的に混乱しない限り使わせていただきます。
Perl大好きっ子なんで。
2001/07/06(金) 22:51ID:???
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < さっぱりだよ。
〜(___ノ \_______________
2001/07/08(日) 17:52ID:???
初歩的な質問ですみませんが、
データファイルって、読み込みの時にもロックした方がいいですか?
それから、レスを多次元配列に入れてから書き出したいのですが、
配列全体のサイズが100KBとかになっても問題ないですか
データファイルって、読み込みの時にもロックした方がいいですか?
それから、レスを多次元配列に入れてから書き出したいのですが、
配列全体のサイズが100KBとかになっても問題ないですか
69名無しさん@お腹いっぱい。
2001/07/09(月) 00:38ID:vYQpj6T6 >>68
おれはflockが使えるときは読み込みのときでも
flock(FILE, LOCK_SH) ってやってるよ。
ただしsymlinkを使ったりする場合は読み込みではロックしない。
配列サイズは、サーバのメモリ容量とアクセス頻度を考慮して
判断すべきだから一概にいえないけど、
うちの環境では100KBならまず気にしない。1MBだと気にするかも。
おれはflockが使えるときは読み込みのときでも
flock(FILE, LOCK_SH) ってやってるよ。
ただしsymlinkを使ったりする場合は読み込みではロックしない。
配列サイズは、サーバのメモリ容量とアクセス頻度を考慮して
判断すべきだから一概にいえないけど、
うちの環境では100KBならまず気にしない。1MBだと気にするかも。
70名無しさん@お腹いっぱい。
2001/07/09(月) 10:12ID:8Wkoq3g6 >69
気にしてください、お願いします
気にしてください、お願いします
2001/07/09(月) 10:21ID:???
専用鯖なんじゃないの?
共用鯖だったら締め頃したくなるところだが
共用鯖だったら締め頃したくなるところだが
2001/07/09(月) 10:34ID:???
>>70
そっか、そうすると
たとえばデータファイルで100行分、まあ、レス100を表示するとすると、
データファールから1行読み込んで、書き出し、1行読み込んで書き出し
みたいにするのが現実的デスカ。
たとえばスレッドID、はじめのレス番号、最後のレス番号を与えると、
そのレスの内容を配列で返す。みたいな関数を作って、というのが楽そうだったのだけど、
あまりおすすめできないと言うことですね。
そっか、そうすると
たとえばデータファイルで100行分、まあ、レス100を表示するとすると、
データファールから1行読み込んで、書き出し、1行読み込んで書き出し
みたいにするのが現実的デスカ。
たとえばスレッドID、はじめのレス番号、最後のレス番号を与えると、
そのレスの内容を配列で返す。みたいな関数を作って、というのが楽そうだったのだけど、
あまりおすすめできないと言うことですね。
2001/07/09(月) 11:06ID:???
そうすると、>>69はファイルロックの話も含めて、ネタか?
2001/07/10(火) 22:56ID:???
>>73
ファイルロックは必要。しないとログファイル壊れるよ。
ファイルロックは必要。しないとログファイル壊れるよ。
2001/07/10(火) 23:59ID:???
更新時に、
lock
更新対象読み込み
更新対象変更
更新対象書き込み
unlock
すれば、壊れないよ。
ただ、更新中に読む奴がいたら表示は狂う。
いちばんいいのは、全部一時ファイルに書き出して一気にrename。
これなら事実上ほとんど表示も狂わない。
ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。
lock
更新対象読み込み
更新対象変更
更新対象書き込み
unlock
すれば、壊れないよ。
ただ、更新中に読む奴がいたら表示は狂う。
いちばんいいのは、全部一時ファイルに書き出して一気にrename。
これなら事実上ほとんど表示も狂わない。
ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。
76panton
2001/07/14(土) 06:17ID:8g/6IMoE オヒザシブリデゴザイマス
IndexedFile.pm を更新しました。
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm
http://www.panton.f2s.com/bbs/lib/IndexedFile.html
IO::Fileの使用廃止と、色々バグ修正があります。
前のバージョンには重大なバグがありました。
見つからなかったってことは、全然使われてねーんだな。
っと思って、手抜きテスト用ボードなんか用意してみました。
http://www.panton.f2s.com/bbs/sbbs.txt
http://www.panton.f2s.com/bbs/sbbs.txt (ソース)
たいしてテストしてないのでまだバグあるでしょう、・・見つけてよーん。
IndexedFile.pm を更新しました。
http://www.panton.f2s.com/bbs/lib/IndexedFile.pm
http://www.panton.f2s.com/bbs/lib/IndexedFile.html
IO::Fileの使用廃止と、色々バグ修正があります。
前のバージョンには重大なバグがありました。
見つからなかったってことは、全然使われてねーんだな。
っと思って、手抜きテスト用ボードなんか用意してみました。
http://www.panton.f2s.com/bbs/sbbs.txt
http://www.panton.f2s.com/bbs/sbbs.txt (ソース)
たいしてテストしてないのでまだバグあるでしょう、・・見つけてよーん。
77panton
2001/07/14(土) 06:19ID:8g/6IMoE78_gunzip
2001/07/14(土) 08:49ID:??? では二つ三つ.......。
--------------------------
キー名に英数字以外のものが含まれているとおかしくなりますね。
("@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();
}
としておけば問題ないね。
いくらかのパディングを余分に取っておいて、
更新された情報が元の場所に収まりそうならそのまま上書きし、
無理なら末尾に回す、とするのもイイかもかも。
--------------------------
キー名に英数字以外のものが含まれているとおかしくなりますね。
("@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();
}
としておけば問題ないね。
いくらかのパディングを余分に取っておいて、
更新された情報が元の場所に収まりそうならそのまま上書きし、
無理なら末尾に回す、とするのもイイかもかも。
79_gunzip
2001/07/14(土) 08:49ID:???あと、198行目の
>chomp $hash{$_} foreach keys %hash;
は、スライスで
chomp @hash{ keys %hash };
と書けたりします。(参考までに)
2001/07/15(日) 07:23ID:???
あっげ
2001/07/16(月) 17:17ID:???
はじめまして。現在機能優先で掲示板を作っていて、コードの
効率は後回し中なのですが、いくつか質問があります。
・一般ではOpenでテキストを読み書きするのが多いようですが、
(MINIBBS程度の規模でも)TieやDBOPENを使ったものが見かけないのは
なぜですか?負荷について問題があるのでしょうか?
・発言データに関して、追加書き込みモードを基本にしてもファイルロックは
必要でしょうか?またどの程度の堅牢性を期待すべきでしょうか?
・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
していますが、While(<FILE>)やその他の方法のうち、お勧め
なのはどれでしょうか?また、Seekを使った読み出しについて
教えてくださいませんか?
効率は後回し中なのですが、いくつか質問があります。
・一般ではOpenでテキストを読み書きするのが多いようですが、
(MINIBBS程度の規模でも)TieやDBOPENを使ったものが見かけないのは
なぜですか?負荷について問題があるのでしょうか?
・発言データに関して、追加書き込みモードを基本にしてもファイルロックは
必要でしょうか?またどの程度の堅牢性を期待すべきでしょうか?
・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
していますが、While(<FILE>)やその他の方法のうち、お勧め
なのはどれでしょうか?また、Seekを使った読み出しについて
教えてくださいませんか?
82panton
2001/07/16(月) 19:29ID:YjhPdxYw >>81
ageで書いてもいいんじゃないかと思うけどなんでsage?
> ・TieやDBOPENを使ったものが見かけないのはなぜですか?
> 負荷について問題があるのでしょうか
掲示板の場合リニアなデータ構造が多いのでハッシュがメインの
タイは不向きといえば不向き。配列を結びつける事も出来るが、
インターフェイスが不完全。
> ・追加書き込みモードを基本にしてもファイルロックは
> 必要でしょうか?
必要です。堅牢性についてはデータの重要性によります。
> ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
> していますが、While(<FILE>)やその他の方法のうち、お勧め
> なのはどれでしょうか?
>>69あたりからを読んでください。
seekに関しては、固定長なら使えるけど、掲示板のように
データ長が不定なデータだと不向き。
そこら辺を解決するためにIndexedFile.pmを作ってるんですが・・・
ageで書いてもいいんじゃないかと思うけどなんでsage?
> ・TieやDBOPENを使ったものが見かけないのはなぜですか?
> 負荷について問題があるのでしょうか
掲示板の場合リニアなデータ構造が多いのでハッシュがメインの
タイは不向きといえば不向き。配列を結びつける事も出来るが、
インターフェイスが不完全。
> ・追加書き込みモードを基本にしてもファイルロックは
> 必要でしょうか?
必要です。堅牢性についてはデータの重要性によります。
> ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と
> していますが、While(<FILE>)やその他の方法のうち、お勧め
> なのはどれでしょうか?
>>69あたりからを読んでください。
seekに関しては、固定長なら使えるけど、掲示板のように
データ長が不定なデータだと不向き。
そこら辺を解決するためにIndexedFile.pmを作ってるんですが・・・
83名無しさん@お腹いっぱい。
2001/07/16(月) 19:58ID:SlpU2cdo >>82
age忘れです。
リニアな構造ということですが、発言IDやTIMEをキーにして
残りは従来のままスカラーでもよいと思ったんですが、、、。
負荷についてわからないというのは、ハッシュでは数百発言とも
なると負荷がかかるのかとか、あるいは値のサイズによって
負荷が変わるのかとかも考えたのですが。
追加書き込みモードについては、一般に恐れているのは
全部読み出し>退避+追加>全部書き出しの過程での全データ
消失だと思うので、追加書き込みでの危険性があまり認識
できないのです。
age忘れです。
リニアな構造ということですが、発言IDやTIMEをキーにして
残りは従来のままスカラーでもよいと思ったんですが、、、。
負荷についてわからないというのは、ハッシュでは数百発言とも
なると負荷がかかるのかとか、あるいは値のサイズによって
負荷が変わるのかとかも考えたのですが。
追加書き込みモードについては、一般に恐れているのは
全部読み出し>退避+追加>全部書き出しの過程での全データ
消失だと思うので、追加書き込みでの危険性があまり認識
できないのです。
84panton
2001/07/17(火) 15:17ID:/BDSxh5c >>83
リニアというのは、掲示板は発言の並びに順番があるということです。
TIMEなどをキーにしてkeysでsortなんかをすることも出来ますが、
DBMの起動オーバーヘッドなんかを考えると、
あえて使う必要も無いかなという程度です。
記事数や値のサイズによる負荷の増加は気にするほどではないと思いますが、
よく知りません。
ファイルロックについては、いろんなところで調べてみるといいと思います。
追記モードでも同時に起こると、ファイルの同じ位置に書き込もうとして
データがおかしくなります。
リニアというのは、掲示板は発言の並びに順番があるということです。
TIMEなどをキーにしてkeysでsortなんかをすることも出来ますが、
DBMの起動オーバーヘッドなんかを考えると、
あえて使う必要も無いかなという程度です。
記事数や値のサイズによる負荷の増加は気にするほどではないと思いますが、
よく知りません。
ファイルロックについては、いろんなところで調べてみるといいと思います。
追記モードでも同時に起こると、ファイルの同じ位置に書き込もうとして
データがおかしくなります。
85名無しさん@お腹いっぱい。
2001/07/17(火) 17:07ID:sUEgTyfs >>84
ありがとうございます。
あと他にも、疑問が生じたときに、理由は自分で考えてみたのですが
これでいいのでしょうか?
while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
早くcloseを行うのでよさげ
・・・・>読み込み時は共有可、書き込み時はどっちみちロック
ANHTTP環境ではflock不可
・・・・>Renameロックかflockコメント化で我慢
全読み>全書き込みvs追加モード
・・・・>ファイルアクセスより管理性重視?
レスポンスお願いします。
ありがとうございます。
あと他にも、疑問が生じたときに、理由は自分で考えてみたのですが
これでいいのでしょうか?
while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
早くcloseを行うのでよさげ
・・・・>読み込み時は共有可、書き込み時はどっちみちロック
ANHTTP環境ではflock不可
・・・・>Renameロックかflockコメント化で我慢
全読み>全書き込みvs追加モード
・・・・>ファイルアクセスより管理性重視?
レスポンスお願いします。
2001/07/17(火) 19:00ID:???
特定の行を抜き出すとき、
$line = (<FILE>)[5];
っていう方法はどうなんですかね。
$line = (<FILE>)[5];
っていう方法はどうなんですかね。
87名無しさん@お腹いっぱい。
2001/07/17(火) 19:12ID:HRgjK2II2001/07/17(火) 19:13ID:???
なして最悪?
2001/07/17(火) 22:22ID:???
2001/07/18(水) 01:34ID:???
>>85
> while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
> 早くcloseを行うのでよさげ
いくらclose()したって、ねぇ…。
89さんの言う通り、避けるべきかと。
「負荷」とか「メモリ」という言葉を(以下略
> while (<FILE>)よりも@line <FILE>のほうが、読み込み時に
> 早くcloseを行うのでよさげ
いくらclose()したって、ねぇ…。
89さんの言う通り、避けるべきかと。
「負荷」とか「メモリ」という言葉を(以下略
91名無しさん@お腹いっぱい。
2001/07/18(水) 13:28ID:aJuOjafs >>90
それは今になってみたら分かります。が、
初心者はこんなことを思っていたという、、、、。
>> ANHTTP環境ではflock不可
>HTTPDとflockは関係ありません。
御免なさい、WIN95+ActivePerl+〜というべきでした。
>> 全読み>全書き込みvs追加モード
>質問の意味がわかりません。
何で追加モードがあるのに、わざわざ全読み全書き込みするのか、という
ことです。
それは今になってみたら分かります。が、
初心者はこんなことを思っていたという、、、、。
>> ANHTTP環境ではflock不可
>HTTPDとflockは関係ありません。
御免なさい、WIN95+ActivePerl+〜というべきでした。
>> 全読み>全書き込みvs追加モード
>質問の意味がわかりません。
何で追加モードがあるのに、わざわざ全読み全書き込みするのか、という
ことです。
2001/07/18(水) 19:10ID:???
2001/07/19(木) 04:20ID:???
>>91
追加は追加。増える一方。
書き換えも行わない。
全読み全書きは、中途での処理の可能性を残している。
本当に全部書いてるのか?
加えて、書き換えてるんなら同じじゃない。
実際にテストして考えてから書き込んでくれ。
追加は追加。増える一方。
書き換えも行わない。
全読み全書きは、中途での処理の可能性を残している。
本当に全部書いてるのか?
加えて、書き換えてるんなら同じじゃない。
実際にテストして考えてから書き込んでくれ。
2001/07/19(木) 04:23ID:???
>>91
flockは evalかけろ。
flockは evalかけろ。
2001/07/19(木) 13:12ID:???
(既存の掲示板スクリプトは)何で追加モードが・・・
ってこと?
そういうのばかりでもないし、そうする必要があるのかもしれないし、
ただ馬鹿なだけかもしれない。
どっちにしろ他人のスクリプトなんてどうで良い。
ってこと?
そういうのばかりでもないし、そうする必要があるのかもしれないし、
ただ馬鹿なだけかもしれない。
どっちにしろ他人のスクリプトなんてどうで良い。
2001/07/19(木) 15:48ID:???
>>94
flockはevalかけるな。
flockはevalかけるな。
2001/07/19(木) 17:50ID:???
.
98名無しさん@お腹いっぱい。
2001/07/19(木) 19:13ID:FUSlV7zU2001/07/19(木) 21:44ID:???
eval{flock(FILE,2)};
eval{flock(FILE,8)};
flockはevalをかければ非対応の環境でも致命的エラーにならない。
eval{flock(FILE,8)};
flockはevalをかければ非対応の環境でも致命的エラーにならない。
2001/07/19(木) 21:54ID:???
そんな貴方に
set PERL5OPT=-m-flock
flock.pmは自分で用意してね♥
set PERL5OPT=-m-flock
flock.pmは自分で用意してね♥
2001/07/20(金) 00:21ID:???
>>100
その代わり実は効いていないのに気がつかない可能性がある
その代わり実は効いていないのに気がつかない可能性がある
103名無しさん@お腹いっぱい。
2001/07/20(金) 01:19ID:AwYw1thE #!/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行
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行
104103
2001/07/20(金) 01:29ID:AwYw1thE 一時間で書いたから最低なソースだ。
素人丸出し。
でも一応動く。
動けばいいよね。
だめ?
素人丸出し。
でも一応動く。
動けばいいよね。
だめ?
105名無しさん@お腹いっぱい。
2001/07/20(金) 01:32ID:WE74UShE ?
106名無しさん@お腹いっぱい。
2001/07/20(金) 01:34ID:WE74UShE あっ 掲示板か ゴメ
107わ、
2001/07/20(金) 03:36ID:O.8zSDuM age
108103
2001/07/20(金) 21:47ID:AwYw1thE #!/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;
少しだけ短くなったかな?
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;
少しだけ短くなったかな?
109103 = 108
2001/07/20(金) 22:30ID:AwYw1thE なんかアドバイスきぼーん。
もっと短くしたいです。
もっと短くしたいです。
2001/07/20(金) 22:33ID:???
CGI.pmをつかって「もっと短く」と言われてもなぁ…と思ってしまう。
111103
2001/07/21(土) 10:50ID:??? #!/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行
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行
112JAPU
2001/07/21(土) 16:18ID:??? どうでもよい話かもしれないが、actionは#REQUIREDです。
2001/07/21(土) 17:04ID:???
>>112
DOCTYPE宣言がない以上ほんとにどうでもよい話ですね。
DOCTYPE宣言がない以上ほんとにどうでもよい話ですね。
114103
2001/07/21(土) 20:30ID:??? #!/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>;
これ以上はむりかな。
だんだん飽きてきた。
つーかこんなのは掲示板じゃない。
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:54ID:.3Y7gM7s 何で止まっちゃったの?
116JAPU
2001/07/26(木) 13:52ID:??? >>113
一応補足しておくと、action が #REQUIRED である限りクライアントによってはうまく動作しないことがあるかも知れないという意味を含めていました。
一応補足しておくと、action が #REQUIRED である限りクライアントによってはうまく動作しないことがあるかも知れないという意味を含めていました。
117名無しさん@お腹いっぱい。
2001/07/27(金) 20:56ID:6tE5j.uU JAPU死ね
2001/07/27(金) 21:47ID:???
>>117
いきなりなんなんだチミわ
いきなりなんなんだチミわ
2001/07/27(金) 21:48ID:???
JAPUさん、負けないで。
2001/07/27(金) 22:43ID:???
>>118
ただの夏房だから放置が吉。
ただの夏房だから放置が吉。
121panton
2001/08/19(日) 03:50ID:Mz6GQnDY 沈みすぎなのでアゲ。
IndexFile.pm改め、IxFile.pmを作りました。
ハッシュだけでなく配列やスカラなどにも対応。
データ構造が変わったので、IndexedFile.pm とはデータ互換性なしです。
詳しくは、
http://www.panton.f2s.com/bbs/lib/IxFile.html
http://www.panton.f2s.com/bbs/IxFile.tar.gz (ブツ)
http://www.panton.f2s.com/bbs/sbbs.cgi (テスト用掲示板)
IndexFile.pm改め、IxFile.pmを作りました。
ハッシュだけでなく配列やスカラなどにも対応。
データ構造が変わったので、IndexedFile.pm とはデータ互換性なしです。
詳しくは、
http://www.panton.f2s.com/bbs/lib/IxFile.html
http://www.panton.f2s.com/bbs/IxFile.tar.gz (ブツ)
http://www.panton.f2s.com/bbs/sbbs.cgi (テスト用掲示板)
122名無しさん@お腹いっぱい。
2001/08/24(金) 05:23ID:DAq2T8i2 何気にVerアプ期待してまっせ
2001/08/24(金) 17:32ID:???
124xx
2001/08/24(金) 17:38ID:??? xxx
2001/08/24(金) 18:02ID:???
あ、ホントだ (^^
開発に疲れちゃったんだろーなー
開発に疲れちゃったんだろーなー
2001/08/24(金) 19:48ID:???
>>ほういち氏
八月半ばに他のQ&A-BBSでも見かけたよ。
でも2chにはこない…。
八月半ばに他のQ&A-BBSでも見かけたよ。
でも2chにはこない…。
127名無しさん@お腹いっぱい。
01/09/07 18:48ID:bc3oxQQc 定期age
01/09/08 02:44ID:???
タイトルのtypo発見した、ちょっとトクした気分だ。。。
129名無しさん@お腹いっぱい。
01/09/10 19:41ID:72uN3czc use base 'IxFile';で継承すると
殆どのフィールドを継承できない(フィールド名が_で始まっている為)のですが、
それは仕様ですか?
殆どのフィールドを継承できない(フィールド名が_で始まっている為)のですが、
それは仕様ですか?
130panton
01/09/10 20:07ID:??? お、意外にも使おうとしている方が・・・
仕様と言えば仕様ですね。
お好みで適当に変えちゃってください。
ただ、今全面的に仕様変更考えてるので微妙です。
特に、インデックスの内部保持方法とその保存形式、
ハッシュや配列へのTieインターフェイスとかいろいろ。
仕事忙しいのでいつになるかわからないけど・・・
なんか意見あったら言ってください。
仕様と言えば仕様ですね。
お好みで適当に変えちゃってください。
ただ、今全面的に仕様変更考えてるので微妙です。
特に、インデックスの内部保持方法とその保存形式、
ハッシュや配列へのTieインターフェイスとかいろいろ。
仕事忙しいのでいつになるかわからないけど・・・
なんか意見あったら言ってください。
01/09/10 21:52ID:???
ナルホド。
弄り始めたばかりですし、特に今のところ意見は無いです。
応援してますんで頑張ってください。
弄り始めたばかりですし、特に今のところ意見は無いです。
応援してますんで頑張ってください。
132名無しさん@お腹いっぱい。
01/09/12 16:10ID:Hityt.0Q age
133名無しさん@お腹いっぱい。
01/10/13 06:53ID:WnJyL/5M あげとく。もう捨てられたスレなのか?
01/10/13 15:25ID:???
「〜を作ろう」っていうスレで何かが完成した験しは全然無いな。
01/10/13 15:29ID:???
# 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;
}
# 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;
}
136panton
01/10/13 20:32ID:WnJyL/5M >>135さん
ありがとうございます。clear メソッドはあったほうが良いですね。
マージさせていただいて良いですか?
関係ない話ですけど、
Apache::AntiSpam::HTMLEncodeを見てて、
メールアドレスの一部分だけでもHTML Entitiesに変換すれば、
ロボットのアドレス収集対策にかなり有効なんじゃないかと思いました。
たとえば、?anton@f2s.com とかみたいに。
もっとも、HTML Entitiesを解釈するロボットがあると元も子も無いけど。
ありがとうございます。clear メソッドはあったほうが良いですね。
マージさせていただいて良いですか?
関係ない話ですけど、
Apache::AntiSpam::HTMLEncodeを見てて、
メールアドレスの一部分だけでもHTML Entitiesに変換すれば、
ロボットのアドレス収集対策にかなり有効なんじゃないかと思いました。
たとえば、?anton@f2s.com とかみたいに。
もっとも、HTML Entitiesを解釈するロボットがあると元も子も無いけど。
137panton
01/10/13 20:36ID:??? あれ、&#112;anton って書いたつもりだったのに・・
bbs.cgiの仕様変わったのかな?
てすと: & > <
bbs.cgiの仕様変わったのかな?
てすと: & > <
138135
01/10/13 20:51ID:??? > マージ
そのつもりで書いたので遠慮なくどーぞ。
> アドレス収集ロボ対策
JAPUさんが会社でやってますね。
ってあまり宣伝しすぎると効果が無くなるんでしょうけど。
そのつもりで書いたので遠慮なくどーぞ。
> アドレス収集ロボ対策
JAPUさんが会社でやってますね。
ってあまり宣伝しすぎると効果が無くなるんでしょうけど。
139panton
01/10/13 21:05ID:???01/10/31 23:12ID:???
このスレ終わっちゃったのカー (゚д゚lll)
テキストに飽きてきたから、使ってみるう
テキストに飽きてきたから、使ってみるう
141名無しさん@お腹いっぱい。
01/11/22 15:56ID:GCw1giJk 終わっちゃったんですか?
142panton
01/11/22 17:15ID:??? おれはいますよ。すんません。
仕事に殺されています。<-言い訳。
仕事に殺されています。<-言い訳。
01/11/22 22:31ID:???
IxFileの配列版File::Arrayを構想中。
01/11/30 03:03ID:???
>>45
> * IO::File
> IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
根拠は?たかだか3889バイトですが?
# と、Google検索でここにきたのでついでに書き込むテスト
> * IO::File
> IO::Fileはかなり大きいので使わずに済ませてもいいのでは?
根拠は?たかだか3889バイトですが?
# と、Google検索でここにきたのでついでに書き込むテスト
01/11/30 03:04ID:???
しかもコメントを除くともっと少ないし :)
レスを投稿する
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- もしかして高市早苗の暴走って米中仲直りのためのマッチポンプなんじゃね?そう考えたら辻褄が合う [623230948]
- 【悲報】高市「常に中国との対話はオープンだ🤗」→G20に中国語通訳帯同させていなかった [359965264]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】ネトウヨ、AIで高市とメローニが握手する動画を生成🥺 [359965264]
- 習「中国とアメリカは軍国主義(日本)を倒した仲間。勝利の成果を守るために協力すべきだ」とトランプに呼び掛け。高市早苗、終了。 [153490809]
- 羊のいらない枕買ってみたんだが
