自作CGIを評価するスレ (672レス)
上下前次1-新
抽出解除 レス栞
71(31): 03/04/06 04:34 ID:??? AAS
>>70
余りいい設計じゃないなぁ・・・
subは位置に依存しないものであるべき
75(2): 03/04/06 04:48 ID:??? AAS
>>71
激しく意味不明なやつになっちまったけど
sub saitama{
my ($value,$saitama,$hoge);
foreach $value (@_){
($saitama,$hoge) = split(/,/,$value);
if($saitama == $hoge){ return 1; }
}
return 0;
}
省1
78: 71 03/04/06 04:55 ID:??? AAS
AA省
80: 71 03/04/06 05:03 ID:??? AAS
まぁ、書き捨てにするか後から見やすく書くかのレベルになる罠(w
86: 71 03/04/06 05:13 ID:??? AAS
>>84
まぁ、別に好きなように書けばいいんだけど、
グローバル変数の値をサブルーチンから出力することもあるし・・・
それ以前に、どのレベルで言ってるかつーのが気になる所かもなぁ
ちなみにgotoは使わないよ。必要ないから(w
89(1): 71 03/04/06 05:21 ID:??? AAS
>>87習慣づけしとけばスパゲッティなソースにはなりにくいのが作れると思うけどねん
returnは複数付けるのが一般的らしいな、覚えとこう
93(1): 71 [sage あっちでは251(w] 03/04/06 05:31 ID:??? AAS
>>91
慣れてない時は単純な処理にでもサブルーチンは作ってたけど、
今は、機能ごとにサブルーチンを作ってるって感じですね
同じ処理でも規模がおっきくないとそのまま書きなぐりすることがおおいです
95: 71 [sage あっちでは251(w] 03/04/06 05:35 ID:??? AAS
>>92
@error =(
err1,
err2,
);
$error[$code];
みたいなことを最近よくするな(w
102: 71 03/04/06 05:48 ID:??? AAS
基本的にエラーメッセージって書かないなぁ(ぉ
規定外の値だとデフォルト値になるようにしてるなぁ
105: 71 03/04/06 06:17 ID:??? AAS
my $mini_cgi = './mini.pl';
my $cntfile = './count.dat';
my $log_dir = './logs';
our $lock_name = 'lock';
<中略>
my $t_h_width = 0;
my $t_f_width = 70;
my $name_size = $name_max - 4;
my $title_size = $text_cols;
この部分って全部グローバルだからourになっちゃうよん
省8
118(1): 03/04/06 10:45 ID:??? AAS
書き方まずかったかな?
>>71はブロックの外で宣言すると、例えばサブルーチンの中からでも参照できてしまうので
変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。
修正というか、むしろ改悪されえてるような・・・。
our にしてしまうと、他のファイルからも値を参照出来る様になってしまうので、
# つっこみたかったのは、
# > この部分って全部グローバルだからourになっちゃうよん
# my で宣言してるのに勝手に our にはならないよー。ってこと。
よくある方法だと、main関数(サブルーチン)を作るか、
単にブロックで囲む。(ラベルは別にいらないけど便宜上)
省8
120: 71 03/04/06 15:01 ID:??? AAS
>>118
>変数宣言する時は、スコープを絞って適切なブロック内で宣言しよう…と言っているのだと思う。
そいう意味.、言い方まずかったですな・・・
123: 71 03/04/06 15:49 ID:??? AAS
AA省
125(1): 71 03/04/06 16:00 ID:??? AAS
>>124見通しが悪くなるから。
誤動作の元にもなりかねんし
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;
}
コレが正解
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'}){
146(1): 71 03/04/09 04:57 ID:??? AAS
>>145 動かしてないからねぇ(w
穴ありまくりであろうかと
150: 71 03/04/10 05:35 ID:??? AAS
>>149
シングルクオートよくやっちゃうんですよ〜(w
動いてよかったです
152: 71 03/04/10 06:41 ID:??? AAS
>>151
自分で処理を書くもんでねぇ・・・
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){
だな、このデータの場合
167(1): 71 03/04/12 23:00 ID:??? AAS
>>166
==だね(汗
170(2): 71 03/04/13 04:47 ID:??? AAS
>>169
初耳じゃなくて、そういうソースを組んでたから
指摘したまでなんだけど・・・
ソースちゃんと理解出来てますか??(o_ _)o
172: 71 03/04/13 04:57 ID:??? AAS
>>171では、
foreach(@keys){
if($_->[$n] !~ /^\d*$/){
$num_flug =1;
last;
}
}
lココの部分がどういう処理をしてたか説明してみそ
178(2): 71 03/04/13 05:32 ID:??? AAS
>>173
つまり、該当データが文字列ばっかりだとループ終わるまで抜けない。
-> 次の処理にいくまで時間がかかるという事で cmp処理のときに時間がかかるという理屈。
179: 71 03/04/13 05:35 ID:??? AAS
>>176そのソース私の奴改造してるから聞いてみたのだけど変ですか?
ところで、ソース組んだんだけどどっかアップしやすい所無いかのぉ
181(1): 71 03/04/13 06:00 ID:??? AAS
んで、件のソースの改造
外部リンク[txt]:kiteline.net
この規模だと分ける意味がないとおもうんだけど・・・
185: 71 03/04/13 06:58 ID:??? AAS
>>183
別にいい悪いはないと思いますけどね。
どんな記述も出来るのがperlですし・・・
自分が見やすければいいんじゃないでしょうか?
あと、自分的には不要な変数を極力使わないぐらいですか・・・
234(1): 71 03/04/24 18:03 ID:??? AAS
ちーと気になったんだが・・・
ヒアドキュメントとか、変数内の#なんかはちゃんと排他処理するようになっとるんだろうか・・・
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.343s*