Perlの作者自身(とその仲間たち?)の手になる、Perlの聖典。この本の「訳者まえがき」には、「プログラミング言語Perlの『原典』」という書き方がされている。要するに、「Perlの本と言えば、まずはこれ」という代物なのである。「改訂版」とあるのは、元々はPerl4の本として書かれたものが、Perl5に対応するにあたって大幅に改訂されたためらしい。本家アメリカでは、既に次の版が出ているとも聞く。
実は、この本を買ったのはもうかなり前のことなのだが、なにしろ750ページ以上もある大著だし、内容も多岐にわたっているためか、なんだかいつまで経っても「一通り読んだ」という実感がわかず、感想を書くのがためらわれる状況が続いていたのだ。それがここへ来て、ある必要からこれまで読んでいなかった部分をざっと読み通したのだけれど、結果としてはやっぱり「一通り読んだ」実感はわいて来なかったので、これはもう仕方があるまいと観念して感想を書くことにした。
どうしてこうも読破の実感に乏しいのかというと、それはきっとこの本の内容が、最初から順に読み通していくことを前提とした書き方になっているからだと思う。この本はさすが聖典だか原典だかだけのことはあって、その入手方法から言語仕様、組み込み関数、プログラミングスタイルや外部とのインターフェース、そして更なる情報源まで、Perlに関する一通りのことが、信頼出来る確実な情報として書かれている。それでいてその書き方は決して箇条書きのリファレンスマニュアル的なものではなく、むしろそれとは程遠い読み物的なノリになっているのだ。文章はフレンドリーでユーモアに富み、ある程度気楽に気分良く読み進める。これは驚異的なことだと思う。これまでにも何冊かそういう趣向の本に出会ったことはあるが、ここまで徹底しているのは初めてだ。
しかし、だから内容が簡単に理解出来るのかと言えばそんなことはないわけで、読みやすい文章で書かれた良質な解説であるとは言っても、読みこなすには当然それなりの気合いが必要でもあり、さすがにこれだけの分量を最初から最後までを一気に読み通すというわけには行かない。そうなると、どうしても必要に応じて部分部分をその都度読んで行くという形になるのだが、上記のように、この本はそうした読み方に適した書き方がされていない。…いや、この表現では言いたりないな。はっきり言うと、この本は泣けるほど検索性が低いのだ。
そもそも章建てがあまりキッチリとした階層構造になっておらず、しかも見出しの付け方に一貫性がなく、各節のトピックが見出しとして表出されていない。ということは目次もあまり役に立たないということだ。それでは索引はどうかというと、これもあまり真面目に作られているとは思えず、ほとんど役に立たない。少々大げさに言えば、結局この本の中から何かの情報を探そうと思ったら、一通りざっと目を通した記憶と推理を頼りに全ページをパラパラとめくって行くしかないのだ。これは、場合によってはかなり辛い。唯一、組込み関数についての章では関数がアルファベット順に並んでいるので、関数名から解説を探すことが出来るのは救いだが…。
解説の内容に関することで一つだけ気になるのは、ライブラリモジュールに関する情報が、わりと沢山のページ数を使っている割りには完全でなく、なんとなく駆け足の印象があること。全てのモジュールに関して完全な解説を掲載することなどそもそも分量的に不可能だということはわかるのだが、それならもっと鳥瞰的な解説をしっかりやって、個々のモジュールに関しては他の本を参照したりどこそこから情報を得たりしてくれ、ということになっていた方がスッキリするように思う。なんだかここだけ具体的な解説が不完全なまま掲載されているように見えて、少々釈然としないものを感じた。もっとも、そんなことが敢えて気になるほど、この本全体のクオリティが高いということでもあるのだと思うが。
そんなわけで、この本は読み物的な解説書としてのクオリティが高いという美点と、リファレンスマニュアルとしての検索性が低いという欠点を、ともにかなり強く持っている。ただし、Perlに関する情報の網羅性、完全性はさすがに高いので、なんとか一通り読みこなして全体を把握した後には、リファレンスマニュアルとしても使えるのだろうとは思う。そういう意味でも「聖典」なのかなあ、などと考えてみたりして。うーむ。