「モダン Perl 入門」を買いました

大きな声で言えないのですが、Perl について最後に購入した参考書は「初めての Perl (Learning Perl)」の初版、すなわち 10年以上前に出された Perl4 対応の本だったのです。 ラクダ本を読んでいないどころか Perl5 対応の perl 参考書は一冊も持っていなかったのです。 この本「モダン Perl 入門」を購入するまでは。

もっとも、perl でまとまったプログラムを書く機会はなかったし、そもそも仕事でプログラムを書くことはほとんどなくなってしまったのでそれで済んでいたのでした。 ちょっとしたテキスト処理に perl を使う程度ならば正規表現の知識とオンラインドキュメントがあれば十分だったのです。

ただ、思うところあって、もう少し perl を勉強してみようと思い選んだのがこの本でした。 今更、分厚い本を通して読む気にはなれないし、Web のあちらこちらで紹介されている内容は C++ での経験値ならばそれなりにある私にピッタリのように思えたからです。

で、まだ第1、2、9章をざっと読んだだけですが、十分元は取ったような気分になっています。 第1章はオブジェクト指向の説明、第2章は各デザインパターンを実装するコードサンプル、第9章は CPAN の使い方含めもろもろの基礎知識が記述されています。 全部読み終えるのはいつになるのかわからないので、とりあえずここまでで感じたことを書いてしまいます。

オブジェクト指向プログラミングの知識がないと辛いかな
第1章を読むには、クラス、カプセル化/継承/ポリモーフィズム (多態性、多様性、…結局訳語は定着しなかったのかな?) といったオブジェクト指向プログラミングの基本知識が必要ですね。 私の場合、この章と Perl5 のドキュメントと合わせて読んだことで Perl におけるオブジェクト指向とは何かというのをある程度は掴んだような気がしています。

同様に第2章はデザインパターンが何のためにあるかということがわかっていないと辛いです。 perl での実装例がメインなので、各パターンについての説明は最小限です。

私は各パターンを空で言える程精通しているわけではないので、久し振りに「オブジェクト指向における再利用のためのデザインパターン」 を引っ張り出してしまいました。 この本は絶版の様ですが、今だったら何が一番お勧めのデザインパターン本なのでしょう? (追記:改訂版がでていて今も変わらずバイブルのようです)

CPAN についての理解が深まった
CPAN というと、いつもはモジュールをダウンロードして perl Makefile.PL; make; make install するだけで「モジュールのレポジトリ」程度の認識しかなかったわけですが、CPAN 形式を採用するメリットをまとめた説明はためになりました。 開発成果をモジュールとして contribute するわけではなくても、CPAN 形式で開発すればメリットがあるということです。 また、モジュール選択の際のチェックポイントも役に立ちます。

ただ、いつも思うのはこういったモジュールを業務で使う場合、どのように認めてもらうかですよね。 恐らくそのままだと CPAN モジュールは玉石混交だと思うので、誰かが権威づけして、そのリストに載っていれば業務で利用できるレベルだよね、というコンセンサスができると良い様に思います。 上司含めてコードが読める人ばかりで柔軟に対応できる会社ならば良いのでしょうが、固い会社だと標準パッケージに含まれるモジュール以外を使うのはハードルが高いような気がします。

その他
私にとっては9章の変数宣言の話 (our, my, local, …) やパッケージ宣言の話も役に立ちました。 日本語処理 (今は Encode.pm を使うのですね) と正規表現の話も欲しくなるところですが、まともにやるとそれだけで本になってしまうのでないものねだりでしょう。

他の章は必要に応じてゆっくりと読もうと思っていますが、それぞれの章でやはり前提とされる知識があるように見えます。 本書は perl 入門書ではないので初心者には向かないと思いますが、まとまった量のプログラムを perl で書こうとしている人や他言語の経験者で目次の項目のいくつかに興味を惹かれた人にとっては買って損はないと思います。