作者: 藤岡和夫
日時: 2007/5/28(20:19)
On Mon, 28 May 2007 17:55:28 +0900 (JST)
kbk@... (Bruce.) さんwrote:

> 更新日記 - 日曜プログラマのひとりごと
> http://homepage1.nifty.com/kazuf/renewal.html#jperl_1180156629
> http://homepage1.nifty.com/kazuf/renewal.html#csc_1180101065
> 
> にあるPerlスクリプトですけど、
> 
> ・jperl(5.005レベル)で動かさなければならない
> ・CGI.pm(or CGI::Lite等のaltanatives)でなくcgi-lib.plを使っている
> ・my してない
> 
> のを見逃すとしても、

 ありがとうございます^^;)簡単なSJISのフィルタを書くのに5.8を使う気には
ならないので・・・まあ、Rubyを使えばというのはありですが^^;)慣れの問題を
優先ということで。

 内容的には野本さんぐらいしか、興味を持たれないもの。いずれ、データが
UTF-8になれば、5.8へ移行の予定です。

> ・print 文の羅列 → ダブルクォートを出力するためにうるさいエスケープも入っている
> のだし、ヒアドキュメントを使うべきではないでしょうか?

 そうですね。なぜ、こう書いたのかは謎ですね。おそらく気まぐれで試しに書
いてみただけかも。元の青空文庫のビュアーからコピーしているのでそのままに
なっています。書き直そうかと一瞬思いましたが、動くからオッケーということ
で^^;

> ・例によって(?) CGIに脆弱性がありまする(XSS)

 そうか、どうするんだっけ、変数をチェックする。入力は漢字だけ。でもXSS
で何かできるかな。

> ・opendir/readdir/grep/closedir のカルテットは globで済ませた方がすっきりすると思います

 最初の頃に憶えたフレーズなのでワンパターンですね。globはどう使うんだっ
け^^;)

> ・暗黙の初期化に依存している変数が幾つか($buff, $out, $id, ...)

 最近なぜ変数をわざわざ初期化する必要があるのか、身をもって知りました。
別に問題なく動くのだからいいじゃないと思っていたのですが^^;)mod_perlを使
うと先に実行した配列の値などが次のスクリプトの実行時に残ってくるのですね。
なるほど変数の初期化は単なる格好じゃなくて、実用的なレベルでも意味がある
のだと思いました。これって、次の次の記事のネタになる予定です。

> というのは2007年の今となってはどうかと思います。

 まあ、jperlは僕が生きている限りはサポートする予定です^^;)だいぶ意味が
違ったかな^^;)

> 各ファイルに対する処理のループの本体も手を入れられるのではないかと思いますが、
> 時間がないので省略します。

 ここはデータがどうなっているのかが正確に把握できないとコメントのしよう
がありませんね。僕も取り敢えず動くレベルで調整しただけなので、まだ変わる
でしょう。

藤岡 和夫
kazuf@...
日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html