【Perl】掲示板を使ろう! (504レス)
上下前次1-新
1(1): 名無しさん@お腹いっぱい。 2001/05/03(木)20:56 ID:lB9ErFH.(1) AAS
AA省
2(1): 名無しさん@お腹いっぱい。 2001/05/03(木)21:58 ID:??? AAS
弐編氏はどうした(ワラ
3: panton 2001/05/03(木)22:42 ID:??? AAS
ども。
俺のは下のURLに変えているので、
外部リンク[pm]:www.panton.f2s.com
訂正させてください。
一応説明させていただくと、
データファイルの高速ランダムアクセスを、
インデックスファイルにより実現するモジュールです。
データの要素にはハッシュが格納できます。
構想中のBBSシステム用に作った物ですが、汎用のモジュールなので、
使ってみてバグを見つけてくれるとうれしい。
4(2): 名無しさん@お腹いっぱい。 2001/05/03(木)23:23 ID:??? AAS
暇だからpanton氏のも試してみるかな。
347氏もそろそろハンドルを名乗るのがいいと思われ。
ほういちさんの所は止まってるなあ・・・
570氏のはどうだろう・・・・
gunzipさん最近見かけないな。病院が忙しいのかな?
5: 名無しさん@お腹いっぱい。 2001/05/03(木)23:34 ID:??? AAS
>>2
絶対要らない。
perl板の汚点弐編
6(1): 名無しさん@お腹いっぱい。 2001/05/04(金)01:03 ID:??? AAS
使るに突っ込んでいい?
7: 名無しさん@お腹いっぱい。 2001/05/04(金)02:44 ID:??? AAS
>>6
使る?
8: 名無しさん@お腹いっぱい。 [さげ] 2001/05/04(金)05:45 ID:??? AAS
「作ろう!」だな・・・・
一体どんな打ち間違いをしたのか・・・
9(1): 1 2001/05/04(金)08:20 ID:??? AAS
。。。。。。。コピペしたから気付かなかった。。。。。。
10: 81 2001/05/04(金)08:22 ID:??? AAS
>>9
あう、重ね重ね申し訳ない・・・
11(1): 名無しさん@お腹いっぱい。 [上へ参ります] 2001/05/04(金)23:12 ID:??? AAS
誰もいないの?
12(1): 名無しさん@お腹いっぱい。 2001/05/04(金)23:26 ID:??? AAS
>>11
(1) みんな黄金週間で遊びまわっている。
(2) 世間が黄金週間のうちに仕事の遅れをとりもどそうと必死。
私は(2)です・・・
13: 11(暇人) 2001/05/04(金)23:33 ID:??? AAS
>>12
頑張ってくだされ〜
14(1): 347 2001/05/06(日)16:48 ID:??? AAS
>>4
名無しさんの逆ってのが良くてそのまま使ってましたが。。。
これじゃだめかな?
しばらくやれるかどうか。。。
15: 4 2001/05/06(日)19:13 ID:??? AAS
>>14
なるほど・・・・言われてみれば確かに逆。
いやいやハンドルは何だっていいです。頑張って
16: _gunzip@お仕事やめたい 2001/05/07(月)06:04 ID:??? AAS
■■■■■■■□□□□□□□□□□□□□□□□□□□
0 20 40 60 80 100
■終わった
-IxAccessFile.pm (ログ、スレッド管理の入出力関係用)
-Article.pm (各投稿記事用クラス)
-post.cgi (1スレッド用・・・極めていいかげん)
-rm.cgi (投稿者/管理者記事削除)
□手を付けてない
-投稿制限 #後回し
-記事訂正 #コレは簡単
-admin.cgi (そのまま) #面倒くさい
-setup.cgi (そのまま) #たぶん要らない
-post.cgi (複数スレッド用) #時間無い
▽あるといいな(なくてもいいな)
Storable or FreezeThaw or Data::Dumper
▽気が向けば
-tmpl_parse.pl (テンプレートファイルからコードを書かせ・・・たいなあ)
#コメント
入出力関係のは出来ているので(一応)、後は割とラクダと思う。
GW殆ど(というか全く)休めず、時間が全くとれないので捗らん(ぐは)
17(1): _gunzip@お仕事やめたい x 50 2001/05/07(月)06:13 ID:??? AAS
>>panton氏
=line 248
>my $pointer = $self->_getpointer($id);
この部分は不要ですよね。既に$idからファイル内の位置が得られているのですから。
----------
あと、ドキュメントのBUGSとTODOに記載されている各項について
("バリューに改行が入っているデータは扱えない。"・・・とか)
何か書こうかと思ったけれど・・・ちょっと後回しにします。
#「配列、スカラーへの対応」とかはどうするのかなあ・・・と興味が。
18: _gunzip@お仕事やめたい x 500 2001/05/07(月)06:17 ID:??? AAS
248->253 だな。はぁ
19: 名無しさん@お腹いっぱい。 2001/05/07(月)06:28 ID:??? AAS
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < あんまり無理するなよ
〜(___ノ \_______________
20: 名無しさん@お腹いっぱい。 2001/05/07(月)17:13 ID:??? AAS
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,・∀・) < 楽しみに待ってるぞ >>all
〜(___ノ \_______________
21: 名無しさん@お腹いっぱい。 [sageage] 2001/05/09(水)20:46 ID:??? AAS
みんな死んでる...........................................
22: 名無しさん@お腹いっぱい。 [0] 2001/05/09(水)20:47 ID:??? AAS
0
23: panton 2001/05/09(水)22:30 ID:??? AAS
>>17 _gunzip氏
(248行目でしたが・・)確かにそうですね。修正します。
> ("バリューに改行が入っているデータは扱えない。"・・・とか)
> 何か書こうかと思ったけれど・・・ちょっと後回しにします。
> #「配列、スカラーへの対応」とかはどうするのかなあ・・・と興味が。
うーん、考えどころです。
StorableとかFreezeThawとか使っちゃえば、必然的にそこらへん
全て解決するし、もっと言えば、メッセージオブジェクトとか
突っ込んじゃえばさらに楽だよなぁ・・・とか。
24: 名無しさん@お腹いっぱい。 [0sage] 2001/05/10(木)17:06 ID:??? AAS
皆さん忙しいんでしょうね
25: age [age] 2001/05/18(金)18:49 ID:??? AAS
age
26: 名無しさん@お腹いっぱい。 2001/05/19(土)09:58 ID:??? AAS
そして誰もいなくなった
27: age 2001/05/22(火)17:48 ID:VQJfqVeI(1) AAS
age
28: 名無しさん@お腹いっぱい。 [0] 2001/06/01(金)16:13 ID:??? AAS
終わっちゃダメェ!!!!
29(1): 名無しさん@お腹いっぱい。 2001/06/02(土)07:33 ID:??? AAS
長らくご愛顧頂き誠にありがとうございました。
===========終了===========
30: 名無しさん@お腹いっぱい。 [age] 2001/06/07(木)14:41 ID:??? AAS
>>29 age
31: 名無しさん@お腹いっぱい。 2001/06/07(木)15:35 ID:??? AAS
気を取り直して
=======================再開============================
32(2): 名無しさん@お腹いっぱい。 2001/06/07(木)16:01 ID:??? AAS
特に2ch型とかにしなくてもいいから、とりあえず基本中の基本、
みたいなシンプルなヤツを誰か書いてくれんだろうか…
Perl上手い人ほど、わざわざシンプルなのって書かないんだよね。
33(4): 名無しさん@お腹いっぱい。 2001/06/07(木)16:28 ID:??? AAS
いつぞやの七行BBS
#!/usr/local/bin/perl
%f=map{tr/+/ /;s/%(..)/pack("H2",$1)/eg;s/</&</;s/>/&>/;$_}split/[&=]/,
$ENV{QUERY_STRING};$f{n}||="名無し";open F,"+<bbs.dat";flock F,2;$e=
"$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e;
print"content-type: text/html\n\n<title>BBS</title><h1>BBS</h1><form
action='bbs.cgi'><p>名前<input name=n value='$f{n}'><br>記事<input name=m
size=50><br><input type=submit></p></form><hr><p>@e</p><hr>";
__END__
>>32
シンプルだぞ(笑)
34: 名無しさん@お腹いっぱい。 2001/06/07(木)20:12 ID:??? AAS
>>33 そのスクリプトすごい好き。7行なのに名無し機能まである。
35(1): 名無しさん@お腹いっぱい。 2001/06/07(木)21:20 ID:??? AAS
>>33
元スレの25だけど、無駄なファイルアクセス避けるためには、
$e="$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e;
は、下みたいにしたほうがいいかもね。
@e=<F>;if($f{m}){seek F,0,0;print F @e=("$f{n} &>$f{m}<BR>\n",@e)[0..20]}
36: 33 2001/06/07(木)21:53 ID:??? AAS
>>35
なるほど。発言があったときのみ書き込むわけですね。
ぢつは33=元スレの20だけど、こりゃ20原案25作成ですね。
フォームの解析なんてホント目から鱗でした。
マジ勉強になります。
37: 32 [0] 2001/06/07(木)22:44 ID:??? AAS
>>33
それ、スゴーク好きなんだけど、もうちょっと何か…(;´ー`)y-~~
でも勉強になりました。
38(1): 名無しさん@お腹いっぱい。 2001/06/07(木)23:32 ID:??? AAS
Tiny BBSでいいじゃん?
外部リンク[html]:yasu.asuka.net
39(1): 名無しさん@お腹いっぱい。 2001/06/09(土)00:41 ID:??? AAS
なんか7行見て引いちゃったんだけどさ
漏れみたいな素人がminibbsパクッタのでもいいかい?
40(1): 名無しさん@お腹いっぱい。 [0] 2001/06/09(土)08:33 ID:??? AAS
>>38
誰か、Tiny BBSのソース上げておくれ。
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。
これなら事実上ほとんど表示も狂わない。
ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。
上下前次1-新書関写板覧索設栞歴
あと 429 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s