自作CGIを評価するスレ (672レス)
上下前次1-新
131: 03/04/06 20:10 ID:??? AAS
myを使わなきゃダメって訳じゃない。
使った方が良いってだけで。
132: 03/04/07 00:03 ID:??? AAS
グローバルである必要がないならレキシカルを使うほうが
安全だし速度的にも有利だからね。
133(1): 03/04/07 15:58 ID:??? AAS
use vars使うのは反則?
134: 03/04/07 16:14 ID:??? AAS
ありじゃないの?
じゃなきゃそんなモジュール作らんよ。
135: 03/04/07 18:46 ID:??? AAS
>>133
使い方次第
136: 03/04/07 22:42 ID:??? AAS
localを使おう
137(2): ◆YHmsETNOS2 03/04/08 16:35 ID:??? AAS
すみませんがちょっと漏れのスクリプトを見てください。
ソートの練習なんです。
いちおう漏れの思っている動作しているのですが,突っ込むところがあれば,後学のために色々教えてください。
ソースはこちら,
外部リンク:members.tripod.co.jp
使ったデータはこちら
外部リンク[txt]:members.tripod.co.jp
要 cgi-lib.pl です。
たいしたものじゃなくてごめんなさい。
初心者なんで,これでも1週間かかっちゃったんです。
省1
138(1): 03/04/08 18:57 ID:??? AAS
>>137
myとかの使い方覚えたほうがいいかも
まだはじめたばかりなのならPHPもいいかもよ
でスクリプトに関しては
ファイルをアップロードするわけでもないんだし
自前でデコードしよう。
139: ◆IzdKJ.WAZA 03/04/08 19:02 ID:??? AAS
>>137
漏れも挑戦してみていいかい?
140: ◆IzdKJ.WAZA 03/04/08 19:45 ID:??? AAS
疲れた。。とりあえずこんなん?
外部リンク[txt]:iwh11.hp.infoseek.co.jp
PerlスクリプトなんでDOSから動かしてね
141: 03/04/08 20:25 ID:??? AAS
my, our でも変数のスコープは同じなんだけどなぁ。
varsプラグマ(v5.6以降だと our)を使うのは、
use strict 'vars'プラグマを有効にした時に、
複数のパッケージである変数を別のパッケージから使いたい場合、等。
no strict は、場合によっては反則 ...
142(1): 03/04/08 23:45 ID:??? AAS
そういえば、さっきmyとmyなしでベンチマークを行ったら
myの方が3,4倍遅かったのだけど…。メモリ消費は解らない。
143(1): 71 03/04/09 03:32 ID:??? AAS
自分の趣味でリファレンスを使ってソースを書いてみた・・・
cgi-lib使ったことないからあてずっぽうだけど、かなりソース書きなおす事になったねぇ
外部リンク[txt]:iwh15.hp.infoseek.co.jp
144(1): 71 03/04/09 03:33 ID:??? AAS
>>143 8-9行目
if ($in{'rev'}){
my $script = 'http://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'};
ココ逆だな・・・
my $script = 'http://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'};
if ($in{'rev'}){
145(1): ◆YHmsETNOS2 03/04/09 04:42 ID:??? AAS
>>138
> myとかの使い方覚えたほうがいいかも
わかりました。勉強します。
> PHPもいいかもよ
perlと心中しまつ。
> ファイルをアップロードするわけでもないんだし
いやいや、今後画像をあぷすて貼り付けるつもりなので。。。
いつになるかわかりませんが。。。。。
>>144
うわぁ、ソースが綺麗でつ。
省8
146(1): 71 03/04/09 04:57 ID:??? AAS
>>145 動かしてないからねぇ(w
穴ありまくりであろうかと
147: 03/04/09 09:53 ID:??? AAS
> そういえば、さっきmyとmyなしでベンチマークを行ったら
> myの方が3,4倍遅かったのだけど…。メモリ消費は解らない。
根拠を示さずに結果だけ取り出して言われても…。誤解されないかな?
my の何のベンチマークを行なったの?
ループ・ブロック内で変数を宣言して、そのオーバーヘッドを測っていた
なんて事はないよね?それとも、ホントに変数の参照・代入が3〜4倍もかかったりした?
148: 03/04/09 10:12 ID:??? AAS
>>142
myのほうが遅いというのはちょっと信じがたいな。
ブロック外から参照される必要がないからシンボルテーブルにも
登録されないし、むしろ速くなるはずだが・・・
149(1): ◆YHmsETNOS2 03/04/10 04:22 ID:??? AAS
>>146
$html =<<'EOT'; を $html =<<"EOT"; でOKでした。
なお、ローカルで動かない件は、cgi-lib.pl へのパスが違っていたというアフォが原因。
150: 71 03/04/10 05:35 ID:??? AAS
>>149
シングルクオートよくやっちゃうんですよ〜(w
動いてよかったです
151(1): 03/04/10 06:38 ID:??? AAS
cgi-bin.pl って
確か、CGI.pmがサポートしてたはず・・・
標準モジュールだよ。
use CGI qw(:cgi-bin);
152: 71 03/04/10 06:41 ID:??? AAS
>>151
自分で処理を書くもんでねぇ・・・
153(1): 03/04/10 10:43 ID:ljl/7aqx(1/2) AAS
ベンチマーク取って見たけど…明らかに my を使った方が高速。
-w と use strict 外して my も何も付けない場合とか、
our も試して見たけど。速度的には my < our < local って順番だったよ。
#! perl -w
use strict;
use Benchmark qw(:all);
my $count = 100;
my $code1="my \$code=1;"; map{$code1 .= "\$code++;\n"}(1..$count);
my $code2="local \$code=1;"; map {$code2 .= "\$code++;\n"}(1..$count);
timethese(1000,{
省7
154: 03/04/10 13:31 ID:??? AAS
>>153
追試。
--- bench ---
use strict; use Benchmark;
my $loop = 5000;
my $code1 = 'my $code = 1;' . '$code++;' x 100;
my $code2 = 'local $code = 1;' . '$code++;' x 100;
timethese($loop, { '1_my' => sub { eval $code1 }, '2_local' => sub { eval $code2 } });
---
● ActivePerl Build 522 on Win98SE
省13
155(1): 03/04/10 18:05 ID:??? AAS
>>121
if ( ( my $aho = $query->param('hogehoge') ) eq 'hoge') {
$a =~ s/a/b/;
$nazoflag .= $a;
} else {
# $ahoは見える。
}
# $ahoは見えない。
while ( defined ( my $line = <IN> ) ) {
# $lineは見える
省5
156: 03/04/10 18:08 ID:??? AAS
2行目が間違ってた。$aだとuse strictでエラーにならないから$ahoにしたんだけど、
これは、、sort用にこっそり、エラーにしないようになってるのかな。
追加、これはなかなか使える
foreach my $hoge (@list) {
}
157: 03/04/10 18:36 ID:ljl/7aqx(2/2) AAS
>>155
質問。continue って何?
158: 03/04/10 18:58 ID:??? AAS
man perlsyn
159: 03/04/10 20:47 ID:??? AAS
”次のループに移る前に実行されるブロック”であってる?
こんな制御構文あったんだ。知らなかった。Thx >> 158
160: 03/04/10 20:58 ID:??? AAS
うん。これは、nextとかを使うとき、行番号が確実に進むようにする、みたいに使う
161: ◆MvRbZL6NeQ 03/04/11 00:23 ID:??? AAS
なるほど
162: [ ] 03/04/11 00:36 ID:??? AAS
つまりはforの後処理か
163(3): ◆YHmsETNOS2 03/04/12 20:17 ID:??? AAS
再び。。。
すみませんがちょっと漏れのスクリプトを見てください。
前回のソートの練習に加え、ページの分割もしてみますた。
いちおう漏れの思っている動作しているのですが,突っ込むところがあれば,後学のために色々教えてください。
なお、前回指摘された “myとかの使い方” は。。。。。(^^A
ソースはこちら,
外部リンク[txt]:members.tripod.co.jp
使ったデータはこちら
外部リンク[txt]:members.tripod.co.jp
要 cgi-lib.pl です。
省1
164(2): 71 03/04/12 22:26 ID:??? AAS
>>163
登録データの件数が増えるのならば
sortの cmp と <=>のルーチンを考えたほうがいいかも
foreach(@keys){
if($_->[$n] !~ /^\d*$/){
$num_flug =1;
last;
}
}
データ量増えていくと、cmpを使う場合処理が遅くなる。
省14
165(1): 71 03/04/12 22:31 ID:??? AAS
>>164
if($n= 3){
だな、このデータの場合
166(2): 03/04/12 22:53 ID:??? AAS
=なんですか?
167(1): 71 03/04/12 23:00 ID:??? AAS
>>166
==だね(汗
168(6): 03/04/12 23:21 ID:??? AAS
>>163
途中でダレたからかなり適当ですがいぢってみますた。
外部リンク[txt]:boobar.hp.infoseek.co.jp
169(2): ◆YHmsETNOS2 03/04/13 04:43 ID:??? AAS
>>164-168
さんくすでつ!
> データ量増えていくと、cmpを使う場合処理が遅くなる。
初耳でつ メモメモ 〆(・_・。)
>>168
全面的に書き換えてくださり、ありがとうございまつ!
感謝でつ!
乙でつ!
さっそくテストしてみまつた!
おー、動いているー。。 あれ(?_?)
省2
170(2): 71 03/04/13 04:47 ID:??? AAS
>>169
初耳じゃなくて、そういうソースを組んでたから
指摘したまでなんだけど・・・
ソースちゃんと理解出来てますか??(o_ _)o
171(1): ◆YHmsETNOS2 03/04/13 04:54 ID:??? AAS
>>170
> ソースちゃんと理解出来てますか
自分の>>163のソースは理解してまつ。
>>168さまのは、現在格闘中でつ。
苦戦しておりまつ。
172: 71 03/04/13 04:57 ID:??? AAS
>>171では、
foreach(@keys){
if($_->[$n] !~ /^\d*$/){
$num_flug =1;
last;
}
}
lココの部分がどういう処理をしてたか説明してみそ
173(1): ◆YHmsETNOS2 03/04/13 05:07 ID:??? AAS
foreach(@keys){ # @keysをforeachして
if($_->[$n] !~ /^\d*$/){ # $_の$n番目の値が数字ではなかったら、
$num_flug =1; # $num_flugに1を入れまつ
last; # foreachのループ抜けまつ
} # ifを閉じまつ
} # foreachを閉じまつ
省1
174: ◆YHmsETNOS2 03/04/13 05:15 ID:??? AAS
sortの cmp と <=> のどちらでやるかのフラグを立てているところっていったほうが良かったんでつか?
175: ◆YHmsETNOS2 03/04/13 05:30 ID:??? AAS
>>168
修正できましたぁ〜!
$lastpage++ unless @Record % $Pageview;
を
$lastpage++ if @Record % $Pageview;
176(1): 03/04/13 05:31 ID:??? AAS
俺敵には
>>169
>> データ量増えていくと、cmpを使う場合処理が遅くなる。
>初耳でつ メモメモ 〆(・_・。)
から、どうして
>>170
>初耳じゃなくて、そういうソースを組んでたから
>指摘したまでなんだけど・・・
のようなレスが付くのか良く分かりません。
cmp使うのが初耳だったんでしょ?なんで「初耳じゃなくて」なんだろう?
177: 03/04/13 05:32 ID:??? AAS
×cmp使うのが初耳だったんでしょ?
○cmp使うと遅くなるっていうのが初耳だったんでしょ?
178(2): 71 03/04/13 05:32 ID:??? AAS
>>173
つまり、該当データが文字列ばっかりだとループ終わるまで抜けない。
-> 次の処理にいくまで時間がかかるという事で cmp処理のときに時間がかかるという理屈。
179: 71 03/04/13 05:35 ID:??? AAS
>>176そのソース私の奴改造してるから聞いてみたのだけど変ですか?
ところで、ソース組んだんだけどどっかアップしやすい所無いかのぉ
180: ◆YHmsETNOS2 03/04/13 05:53 ID:??? AAS
AA省
181(1): 71 03/04/13 06:00 ID:??? AAS
んで、件のソースの改造
外部リンク[txt]:kiteline.net
この規模だと分ける意味がないとおもうんだけど・・・
182: 03/04/13 06:09 ID:??? AAS
>>178
ああ、そういう意味か。てっきりcmpと<=>の違いを言ってるのかと思った。スマソ
183(2): ◆YHmsETNOS2 03/04/13 06:35 ID:??? AAS
>>181
改造さんくすでつ!
でも、穴が多いッスね。
次のページを押し続けれないし、
前のページが表示されないし、
順番が0-9の固定だし。。。
勉強のため漏れが修正したいと重い松が。。。
>>181さんの目から見て、>>168さんのソートは処理が重そうでつか?
>>168さんのソースは今まで漏れが出会ったことのない書き方だからちょっと苦戦しておりまつ。
おっと、>>168さんのソース、逆順ソートが出来ない。。。
省2
184(1): ◆YHmsETNOS2 03/04/13 06:51 ID:??? AAS
>>168
逆順ソートが出来ない件、修正しましたが。。。
$TableHeader .= qq|\t<th><a href="| . make_url(n => $_, action => 1) . qq|">$field{$_}</a></th>\n|
for sort { $a <=> $b } keys %field;
を
if ($Param{'rev'}){
$TableHeader .= qq|\t<th><a href="| . make_url(n => $_, action => 1,rev => 0) . qq|">$field{$_}</a></th>\n|
for sort { $a <=> $b } keys %field;
}else{
$TableHeader .= qq|\t<th><a href="| . make_url(n => $_, action => 1,rev => 1) . qq|">$field{$_}</a></th>\n|
省3
185: 71 03/04/13 06:58 ID:??? AAS
>>183
別にいい悪いはないと思いますけどね。
どんな記述も出来るのがperlですし・・・
自分が見やすければいいんじゃないでしょうか?
あと、自分的には不要な変数を極力使わないぐらいですか・・・
186(1): 03/04/13 07:34 ID:??? AAS
>>184
なんだこりゃ?
$TableHeader .= qq|\t<th><a href="| . make_url(n => $_, action => 1,rev => ($Param{'rev'} ? 0 : 1)) . qq|">$field{$_}</a></th>\n|
for sort { $a <=> $b } keys %field;
だろ?
187: ◆YHmsETNOS2 03/04/13 07:57 ID:??? AAS
>>186
サンクス!
こういう書き方は初めてなんで、かなり苦戦しておりまつ。
188(1): 03/04/13 16:20 ID:??? AAS
なんでこのスレでつまつが多いの
聞いてて疲れる
189: 03/04/13 17:03 ID:??? AAS
poster は前田利家なのであろう。
190(2): 168 03/04/13 20:14 ID:??? AAS
>>183
直した。
外部リンク[txt]:boobar.hp.infoseek.co.jp
文法的に分からんトコは、駱駝本なり perldoc なり見てね。
「何でこういう処理が必要なのか分からない」ってトコは聞いて。
191: ◆YHmsETNOS2 03/04/14 04:43 ID:??? AAS
>>190
う〜、感涙!
実際、かなり省略した書き方なので、文法的にわかんないところばっかりでつ。
だからどんな処理をしているのかわかんなかったりして…(^^;
でも、がんばって自分で読み下して理解しまつ。
コメント文の多さに助かってまつ。
これからもご指導ご鞭撻のほどよろしくおながいしまつ。
>>188
あいた〜
苦情でつ!
省3
192: 03/04/14 05:17 ID:??? AAS
まあほどほどにな。
193: ◆YHmsETNOS2 03/04/16 05:35 ID:??? AAS
>>190
漏れの思っている動作は、
各Info ボタンを押すと昇順にも降順にもなる。
この際順番(ここではOrder)昇順なら小さい方から1、降順なら大きい方から1がいいんでつ。
でも>>190様、直さないでくださいね。
漏れがやるんでつ。
あと。。。
my @Field = qw(Info1 Info2 Info3 Info4);
っていう所。
my @Field = qw{Info1 Info2 Info3 Info4};
省12
194: 山崎渉 [(^^)] 03/04/17 12:07 ID:??? AAS
(^^)
195(1): マリモーマ ◆r6PDGT6Xd2 03/04/18 17:28 ID:fPIUuruF(1/2) AAS
こんなの作ったけど どうよ?
外部リンク[cgi]:ebrain21.com
196: 03/04/18 17:33 ID:??? AAS
>>195
Internal Server Error が出たぞ
197: 03/04/18 17:35 ID:BrkP32Ds(1) AAS
一度ゴールすると次回からアクセスするたびに(ry
198: マリモーマ ◆r6PDGT6Xd2 03/04/18 19:34 ID:fPIUuruF(2/2) AAS
なんでだろうね 誰か直してよ(藁)
199: 03/04/18 21:18 ID:??? AAS
マリモーマ、、リア厨かと思ってたらもっと年取ってた。爆
200: マリモーマ ◆r6PDGT6Xd2 03/04/19 13:29 ID:kAGW5QYq(1) AAS
若いのは年齢だけだよ もう体がたがた そろそろプログラムも
できなくなるかも?
201(1): 03/04/20 00:47 ID:??? AAS
もーちょっとデザインなんとかならんのかね・・・
掲示板、見にく(ry
202: 03/04/20 04:29 ID:??? AAS
でも俺より若い
203(1): 山崎渉 [(^^)sage] 03/04/20 05:59 ID:??? AAS
∧_∧
( ^^ )< ぬるぽ(^^)
204(1): マリモーマ ◆r6PDGT6Xd2 03/04/20 10:12 ID:xM5Zwmt0(1/2) AAS
>>201
∧_∧
( ^^ )<じゃ どうすればいい?(^^)
205(2): 03/04/20 12:05 ID:??? AAS
>>204
なんとかすればいい
206: 03/04/20 12:21 ID:??? AAS
>>205
ワロタ
207(1): マリモーマ ◆r6PDGT6Xd2 03/04/20 15:05 ID:xM5Zwmt0(2/2) AAS
>>205
(O_O) うう〜〜 わからないよ
208: 03/04/20 16:04 ID:??? AAS
しねや
209(1): [201] 03/04/21 09:41 ID:??? AAS
>>207
・・・・とりあえず、他の掲示板とか見て回れ。
他の掲示板とか見たことあるだろ?
無駄なテーブル使いすぎ。
もっと、シンプルでいいと思うが・・・
それと、掲示板CGIの吐いてるHTML見たが・・・
HTML、間違ってないか???
改行ナシの、汚いHTMLでちゃんと読めんかったが・・・。
もうひとつ。
ひとつDLさせてもらってソース見たが・・・
省7
210: マリモーマ ◆r6PDGT6Xd2 03/04/21 17:08 ID:CNsFsGAe(1) AAS
>>209
なるほど 参考にするよ ありがとう
211(25): [3025] 03/04/24 04:27 ID:??? AAS
ども。ちょっとスレ違いかもしれないけど、お邪魔します。
CGIじゃないんだけど、Perlスクリプト内のコメントを削除するスクリプトを作りました。
使い方は、同封してるテキスト読んでも分かるけど、D&DでOKな、結構便利な感じです。
外部リンク[lzh]:isweb25.infoseek.co.jp
評価お願いします。
また、改造してくれてアップしてくれる人は、
それ見て勉強したいと思いますのでお願いします。
212: bloom 03/04/24 04:29 ID:vV02vP1k(1/3) AAS
外部リンク:homepage.mac.com
213(1): マリモーマ ◆r6PDGT6Xd2 03/04/24 05:40 ID:0xA64jQF(1/3) AAS
>>211
コメントが 笑った あと 抜いた行の 下の行を 上げたほうがいいかも
214(1): マリモーマ ◆r6PDGT6Xd2 03/04/24 05:49 ID:0xA64jQF(2/3) AAS
あ やっぱり 「抜いた行の下を上げますか」と 聞いてきた方が
いいかな?
215: 03/04/24 05:53 ID:x2ip/9xn(1) AAS
外部リンク:homepage3.nifty.com
216: 動画直リン 03/04/24 06:29 ID:vV02vP1k(2/3) AAS
外部リンク:homepage.mac.com
217: 211 [3025] 03/04/24 07:25 ID:??? AAS
>>213
>>214
ご感想、ありがとうございます。
そういう事で、少し改造してみました。
改行を消すかどうか、質問されるようになりました。
外部リンク[lzh]:isweb25.infoseek.co.jp
もし、どなたでも改造したら、できればアップしてくださいね。
218: 211 [3025] 03/04/24 07:49 ID:??? AAS
・・・と、言う訳で、またバグを見つけました・・・
HTML出力してて、色指定で#を使ってたら、それ以降が削られてました。。。
外部リンク[lzh]:isweb25.infoseek.co.jp
・・・今度こそ・・・
219: bloom 03/04/24 08:29 ID:vV02vP1k(3/3) AAS
外部リンク:homepage.mac.com
220: 03/04/24 10:23 ID:??? AAS
分かち書き、変
221: マリモーマ ◆r6PDGT6Xd2 03/04/24 16:32 ID:0xA64jQF(3/3) AAS
$a =~ s/#//g; としたら 消えた まあ これは実行したら エラーが出ると思うけど
222(2): 03/04/24 16:38 ID:??? AAS
このコメント削除スクリプトはどんな役に立つんだぎゃ?
223(18): 03/04/24 16:48 ID:??? AAS
外部リンク[zip]:isweb25.infoseek.co.jp
実は211のやつ見て無いんだが
書いて見たよ
先頭のタブとかは消さないようにした
一応自分の書いたスクリプトではきれいに
コメント部は消えた模様
224: 223 03/04/24 16:52 ID:??? AAS
書いてから211の試したんだが
漏れの書いたスクリプトでは
誤作動しまくりだ
$hoge = '#000000';#hogehoge-
こういうのが
$hoge = '
になってるよ
225(1): 223 03/04/24 16:53 ID:??? AAS
漏れの書いたスクリプトを 211ので処理すると
ってことね
226(1): 211 [3025] 03/04/24 17:06 ID:??? AAS
>>222
このコメント削除スクリプトは・・・
PerlでCGIをつくって、サーバに上げる時、
ソース内のコメント部分のファイルサイズが無駄なので作りました。
ちなみに、俺のCGIファイルで、23kあったのが、16kにまで落ちました。
自分のパソコン内で走らせるスクリプトなどについては・・・
コメント削除するメリットはありません。
>>225
どもども。
そう、後から気付いたんです。
省6
227: 223 03/04/24 17:11 ID:??? AAS
>>222
意味は無いよ
コンパイル速度も変わらんしね
ただimgboard.cgiとかむかつくようなコメントが
たくさん載ってるやつには有効だ(ぷ
210KB→160KBになったよ
まぁ漏れ的には容量はどうでもいいが
うざすぎるコメント消すのが面白そうだったからなw
228(1): 223 03/04/24 17:13 ID:??? AAS
>>226
それをimgboard.cgiで試したんだが
コンパイルエラーするよ
容量的には漏れより小さくなってるんだが
余計なところまで消しすぎでは?
229(1): 211 [3025] 03/04/24 17:21 ID:??? AAS
>>228
マジっすか!
なに消してるんだろ・・・
消しちゃいけない所、特定できません?
imgboard.cgiですか・・・
探してDLして、ためしてみます。
ちなみに、>>223の削除スクリプト試させてもらいました。
先頭にタブとかがあってのコメントは削除されない仕様ですね。
俺のは、とにかくコメントだと思われるような所は、すべて排除していく仕様なので・・・
失敗したら、文法エラーとかコンパイルエラーとか出ます。
省2
230: 223 03/04/24 17:51 ID:??? AAS
外部リンク[zip]:isweb25.infoseek.co.jp
一箇所だけ修正
まぁ 文法一切見て無いので
バグいろいろあるんだが
直す気もないので
終了。
製作時間2分+30秒ですた。
imgboardはimgboard.cgiでぐぐると一番上にでてくるよ
上下前次1-新書関写板覧索設栞歴
あと 442 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s