« キヤノンレンズ情報 | メイン | オリジナル (Ver.2.65) のバグ »

use strict 化断念

オリジナルの Joyful Note のバージョンが 2.65 に上がっていて、相当荒らし対策が施されています。なので、これをベースに Ver.3.0.0 を開発しようと思います。

最初に ExifInfo.pl でも行ったように use strict; にしても動作するようにと考えて作業を試みました。Perl Ver.4 でも動作することを考慮しているのかどうかはよく分かりませんが、局所変数の定義として my ではなくて local のみを利用しています。これが use strict ではまったく受け入れられないので、my に変えていたのですが、それでは問題があることに気づきました。

そもそも my と local には違いがありまして、その一番大きなものが

■ local 定義した変数は子サブルーチンに引数を利用することなく継承できる

ことです。このおかげで、引数の数を抑えつつ変数を継承出来るので local をうまく利用すると便利なのですが、個人的には何を変数として渡したいのかをきちんと把握する上でも避けた方がよいと考えています。

少し話が脱線しましたが、オリジナルで利用されている local 宣言には本来は my でよいものと local でないとダメなものが混在しています。それをきちんと把握することが非常に困難だったということです。まぁ、きちんとソースを読んで把握すればよいのですが、それならば自分でコーディングした方がよいような気もしますし…

ということで、use strict することによって予期せぬバグを増やしてしまう可能性が大きいと判断してオリジナルの use strict 化は断念しました。その代わり、自分が新たに追加するものはそれを意識しようと思います。

トラックバック

このエントリーのトラックバックURL:
http://cachu.xrea.jp/MT/mt-tb-1328e30.cgi/831

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)