ここ何日か、Perl のプログラムを修正しているのですが、つくずく思うことがあります。
「Perl ってこんな書き方もできたのか」
昔やったころは、awk から移行したこともあり、Cっぽく書いていました。
意外と簡単に書けたという記憶があります。
当時はインターネットはまだまだ普及期で、もっぱら本をたよりに書いてました。
しかし、今はネットにサンプルコードがあふれてます。
しかも、昔は使わなかったオブジェクト指向な書き方を解説したサイトもたくさんあります。
今、そういったサイトで調べて書き直しているのですが、なぜ、こういう書き方ができるか
理解できないものがたくさんあります。
さらに、修正対象のコードも、私にしたらかなり癖のあるプログラム。この書き方でよく
動いてたな、と驚かされます。
以前から、こりに凝った Perl のソースは、判読する自信がありませんでした。その理由の1つを、パッケージによるもの、と思っていたのですが、今思うとそうではなく自由な書き方ができることが大きいように思えてきました。
さらに、C言語をはじめ、PHPなどでも普通にできていたことが、実は苦手だったということも最近知りました。関数で、引数に配列を指定すると、すごい面倒ですね。さらに、2次元の配列も、正直、私のスキルでは扱えそうにありません。
PHP ならこう書くんだけどな、と思いつつ、今のスキルで書けるコードに修正を試みています。
でも、問題は読みやすさですね。
今直そうとしているのは昔かかれた perl のシステムなので、全ての変数がグローバル変数。しかも、ファイルがいくつも別れており、その時の気分でテンポラリの変数の名前を付けたようで、「この変数は何?」というのがたくさんあります。ソースだけでなく動作からも類推して直している状況で、時間がかかってしょうがない。
今ごろになって perl を学ぶことになるとは。こんな仕事を長くやっているといろいろあるということでしょう。