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

532
(2): 528 04/05/10 19:23 ID:??? AAS
>>530-531
評価ありがとうございます。
色々参考になります。

cssについてはファイルを一つにまとめたかったからです。
やっぱあんまり良くないですか?

>> 74: else { print "Status: 403 Forbidden\n\n"; exit; }
>エラーメッセージを吐いた方が親切。

if ($mode eq "css") { Style_Sheets(); }
elsif ($pass ne $pw) { Error('パスワードが違います。') }
elsif (($pass eq $pw) && ($mode eq "view") && ($ENV{'REQUEST_METHOD'} eq "POST")) { View(); }
省2
533: 04/05/11 00:31 ID:??? AAS
>>532
・CSS を変更する為にスクリプトを編集する危険を冒す必要がある。
・外部に CSS を持つのに対し、常に二倍の回数実行される。
・CSS を使い回す時に悩む事になる。

これらのデメリットを考慮の上で、なお一つにまとめるメリットの方が
勝ると判断したならいいんじゃないか?
534: 528 04/05/14 20:45 ID:1r/FkAS3(1) AAS
>>532
自己レス
すげー馬鹿なこと書いていた

if ($mode eq "css") { Style_Sheets(); }
elsif (($pass) && ($pass ne $pw)) { Error('パスワードが違います。') }
elsif (($pass eq $pw) && ($mode eq "view") && ($ENV{'REQUEST_METHOD'} eq "POST")) { View(); }
else { Pass_form(); }

たぶんコレでいいかな…

作った動機はなんとなくなんだけど、実用性とかどうでせう?
一応CGIの設置とかできて、ほんのちょっとだけいじれる程度人向けのつもりです。
535
(3): ◆u2YjtUz8MU [age] 04/07/02 01:32 ID:??? AAS
いろいろわからんことだらけで作りましたが
添削して下しさい。
【スクリプト】外部リンク[txt]:www.tcn.ne.jp
【動作例】外部リンク[cgi]:www.tcn.ne.jp
536: 04/07/03 23:32 ID:??? AAS
>>535
むずい
537: 04/07/04 05:07 ID:??? AAS
>>535
とりあえず画像のファイル名を変えた方が良いよw
20点頂きました
538: 04/07/04 05:12 ID:??? AAS
>>535
もじゅーるは使えない鯖なんでつか?
使えるんなら使ったほうがいいでつよ。
Image::Magick、CGI、Jcode等々
何に使うのかは自分で調べてね。

EUCで書いたり表示したりしたほうがいいと思うけど、Shift_JISでやりたいのなら反対しないさ。

所々myを付けているが、どうせなら全部に付けちゃいな。
strictしろってこった。
ついでにHTML的にも4.01strict すれば?
539: ager [age] 04/07/09 18:40 ID:??? AAS
age
540
(8): 04/10/08 20:39 ID:HUGW4EIR(1) AAS
タイトル::時刻::内容\n

というようなデータが数行あるような場合
それらを読んできて切り分けるって処理を
してます。
これの評価お願いします。

sub split_data{

my @ref,@tmp,%hush;
@tmp = @_;

for (@tmp){
chomp;
省12
541
(2): 04/10/09 00:21 ID:??? AAS
>>540
myで複数宣言するときは()がいる
hushじゃなくてたぶんhashね. 連想配列っていみなら

ハッシュのスライスを使うとエレガントかも
@hash{qw/title time contents/} = split /::/;

foreachつかえよ
for(...$#ref)
542
(3): 540 04/10/09 02:08 ID:??? AAS
541>

>ハッシュのスライスを使うとエレガントかも
>@hash{qw/title time contents/} = split /::/;

ありがと、参考になりました。

my は複数でも()いりませんよ。バージョンによるだろうけど
最後に、今更foreach使ってる人いるんですか?w
543
(1): 04/10/09 02:43 ID:??? AAS
>>542
#--- test.p ---
use strict;
my $foo, $bar, $baz;
__END__

> /usr/local/bin/perl -v
This is perl, v5.8.5 built for i386-freebsd-64int
<snip>
> /usr/local/bin/perl -wc test.p
Parentheses missing around "my" list at test.p line 2.
省11
544
(1): 04/10/09 03:20 ID:??? AAS
>>541 >foreachつかえよ
>>542 >今更foreach使ってる人いるんですか?w

for と foreach は単なるシノニムなので、その表現は正しくないな。
foreach (LIST) BLOCK を for (LIST) BLOCK と略せるのと同様に、
for (EXPR; EXPR; EXPR) BLOCK を foreach (EXPR; EXPR; EXPR)
BLOCK と書いてもエラーにならない。

foreach ループを意味するところで foreach と「書け」という >>541
アドヴァイスは論拠の確かな正しいものだ。しかし Perl では C 風の
for ループを使う機会が foreach ループに比べて圧倒的に少ない上、
人間の目からも for ループと foreach ループの区別は容易なので、
省1
545
(1): 04/10/09 05:06 ID:??? AAS
>>540
%hush(多分hash?)の宣言の位置。
GCのコストを考慮した場合に、変数の再利用をするはあるけど...、
ループないで初期化してないとフィールドの数が少ない時に困るよ。

split/::/の代わりに正規表現を使ってデータを切り出すと、
データのチェックとsplitを同時にできて便利。

chompはデータ格納前に済ませておいた方が良いんじゃないかな。chomp(@tmp)
もしくは、大抵はファイルから読み込むだろうからその時に。
546
(2): 540 04/10/09 05:35 ID:??? AAS
>>544
どうもありがとう。foreachは普通に使えるんだろうけど、
大抵forで済ませてしまうのです。言い方悪かったです、スイマセン。

>>545
ありがとうございます。

>ループないで初期化してないとフィールドの数が少ない時に困るよ。
というのは、forのループ内で undef(%hush); (ほんとはhashでしたw)
でいいですか?
あと、フィールドの数が少ない時というのはどういうことでしょうか?

>split/::/の代わりに正規表現を使ってデータを切り出すと
省7
547: 541 04/10/09 11:14 ID:??? AAS
言いたかったのはforeach (@ref)にしろよってことね
別にfor (@ref)でもいいかもしれんが
あと>>543読んだか? myは複数宣言するときは()いる

>>546
>ループ内で初期化
for(hoge){
my %hash;
statement;
}
こういう事だと思う
548
(1): 540 04/10/09 12:28 ID:??? AAS
my () つけなくてもエラー出てないです。 という事は
省略も可って事ではないでしょうか?
549: 04/10/09 14:26 ID:??? AAS
>>548
エラーにならないのは strict 'vars' 宣言が無いからだ。
my $foo, $bar, $baz; という文自体は文法的には間違いじゃないが、
my は , より優先順位が高いので、my($foo), $bar, $baz; と書くのと
等価になる。

#--- test.p ---
my $foo, $bar, $baz;
print defined $main::{$_} ? "'$_' is global.\n" : "'$_' is rexical.\n"
  for qw(foo bar baz);
__END__
省9
550
(1): 04/10/09 17:41 ID:??? AAS
>>546
> あと、フィールドの数が少ない時というのはどういうことでしょうか?
これは、今回のケースでは問題なかったです。

でも、変数を再利用する時は気を付けないと、前の値が残っていたり、
意図しない場所の値を書き換えてしまったりするので注意。
例えば、pushの所を \%hash とりファレンスを使うように変更した場合。

my (@ref, %hash);
foreach (@_) {
# @refの中の前の値を上書きすることになる
# {%hash}とした場合は、@refにはいってる値はコピーなので影響ない
省16
551
(1): 04/10/09 18:04 ID:??? AAS
ここってものすごいでかいスクリプトでも細かい所まで見てくれるの?
1-
あと 121 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s