1097 指摘 はくぶん 2009-03-12 01:06:48
ラリー。

list.cgi
変数をダブルクォートで括ったり括らなかったり。
数字は基本的にクォートなしでOK。
PerlはVBなんかと違い、数字を文字列にも数値にも臨機応変に処理してくれる。

date_edit.cgi
リファー調べてアクセス制限しようとしているが、
あの記述だと、他サイトのmod.cgiから来たやつは拒否できない。
また、もしどこかのURLにmod_cgiディレクトリなんてのが含まれていたら、
そこから来るやつも拒否できない。

正規表現ではドットは何か一文字を意味するので、
拡張子前のドットを意味したいなら、エスケープシーケンスが要る。

同様にカレントディレクトリを表すスラッシュの前のドットについても同じ。

おっと、こんなことここで言っちゃっていいのかな?

基本的にリファーはフルパスで書かない限り、
どこにどんなURLが存在するかわからないから、
完璧にはアクセス制限できないってことだね。

変数の省略
変数や文字列を連結する場合、省略された変数は非常にわかりづらい。
文字列、変数、文字列、変数、文字列、変数、文字列なんて連結は、
HTMLタグを書く際は珍しくはないが、
この真ん中あたりに省略変数を入れなきゃいけない場合、
クォートとドットの嵐の中に埋もれてしまって、
ともすると構文エラーを引き起こしやすい。

更に、ループ処理の内部にもう一つループ処理がある二重構造の場合、
一方で変数を省略すると、もう一方では省略できない。
ループ処理が何重にも重なってくると、結構省略変数の行方を見失うんだな。

とまあ、いろいろ書いたが、
これからラリーもいろいろなエラーに遭遇すると思うので、
それはまた追々ということで。

それにしても、これで1週間目なんだよなあ。
少なくとも俺は1週間では連想配列(ハッシュ)は使いこなせなかったな。
メッセージ文字数:749/790