自作CGIを評価するスレ (672レス)
1-

108: 03/04/06 06:34 ID:??? AAS
ま、あせらずゆっくりいけやー。
109: 37 ◆0wPZQfeVoI 03/04/06 06:52 ID:??? AAS
どうもー。
取り合えず今日は寝てません。
110: 03/04/06 08:06 ID:??? AAS
my でスコープはファイル・パッケージ内に限定されるんだから意味はあると思うよ。
our にはならない。
別のパッケージから読みこんだりしてるのでなければ、
わざわざ our にする方が意味ないと思うけど?
111: これ自信作だぜ 03/04/06 08:51 ID:dTzeXpbT(1/4) AAS
修正しましたが何か?
112: あぼーん [あぼーん] 03/04/06 08:52 ID:??? AAS
AA省
113: これ自信作だぜ 03/04/06 08:52 ID:dTzeXpbT(2/4) AAS
↑追加
外部リンク:oasis.mininddns.net
114: これ自信作だぜ 03/04/06 08:53 ID:dTzeXpbT(3/4) AAS
スマソ。スッペルミス
外部リンク:oasis.minidns.net
115: あぼーん [あぼーん] 03/04/06 09:17 ID:??? AAS
AA省
116: これ自信作だぜ 03/04/06 10:29 ID:dTzeXpbT(4/4) AAS
外部リンク:oasis.minidns.net
蜜柑性だけどな
117: 03/04/06 10:35 ID:??? AAS
[index.cgi:26:warn] Use of uninitialized value in concatenation (.) or string at /www/oasis/html/index.cgi line 26. [index.cgi:26:warn] Use of uninitialized value in concatenation (.) or string at /www/oasis/html/index.cgi line 26.
ってでてるよ>116
118
(1): 03/04/06 10:45 ID:??? AAS
書き方まずかったかな?
>>71はブロックの外で宣言すると、例えばサブルーチンの中からでも参照できてしまうので
変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。
修正というか、むしろ改悪されえてるような・・・。
our にしてしまうと、他のファイルからも値を参照出来る様になってしまうので、

# つっこみたかったのは、
# > この部分って全部グローバルだからourになっちゃうよん
# my で宣言してるのに勝手に our にはならないよー。ってこと。

よくある方法だと、main関数(サブルーチン)を作るか、
単にブロックで囲む。(ラベルは別にいらないけど便宜上)
省8
119: 37 ◆0wPZQfeVoI 03/04/06 14:26 ID:??? AAS
なるほど。
囲ってみます。
120: 71 03/04/06 15:01 ID:??? AAS
>>118
>変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。

そいう意味.、言い方まずかったですな・・・
121
(2): 03/04/06 15:42 ID:??? AAS
{}って
while{} foreach{} for{} sub{} {}
が?有効なの
if{}はどうなるの?
122: 03/04/06 15:46 ID:??? AAS
漏れはグローバル変数使いまくりだけど だめかい?
123: 71 03/04/06 15:49 ID:??? AAS
AA省
124
(1): 03/04/06 15:57 ID:??? AAS
別に全部$hogehogeみたいなやつでいいじゃん
なんで局所変数とかみんなつかうの????
125
(1): 71 03/04/06 16:00 ID:??? AAS
>>124見通しが悪くなるから。
誤動作の元にもなりかねんし
126
(1): 03/04/06 16:05 ID:??? AAS
>>125
でも配ってるやつってほとんどグローバル変数のみじゃん
127
(2): 71 03/04/06 16:12 ID:??? AAS
>>126だから自分で組んでるんだが?
グローバルがいいっていうなら、そうすればいいのじゃない?

自分だけでやっとればいいってのなら一向にかまわないけど、
複数の人がからんでくるとなるとそうもいかない
128
(1): 37 ◆0wPZQfeVoI 03/04/06 16:44 ID:??? AAS
取り合えず少し直してみました。
今日はPHPで学校の掲示板を作るので
あまり変更はないかもしれません。

>>71さん
気をつけないと
if ($hoge eq 'hoge') {
 my $foo = 'hoge!';
}
print $foo;
この場合マズイですよね?
省1
129
(1): 71 03/04/06 16:49 ID:??? AAS
>>128
それはスコープの外に print $fooがあるので動作しない

if ($hoge eq 'hoge') {
 my $foo = 'hoge!';
 print $foo;
}
コレが正解
130: 37 ◆0wPZQfeVoI 03/04/06 19:43 ID:??? AAS
>>129さん
OKっす。
要はCのautoですよね?
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) うう〜〜 わからないよ
1-
あと 465 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s