なんでもこの11月1日からNIFTYがInfoWebと合体して@niftyになり、そうすると会員の個人ホームページエリアで自作のCGIプログラムが動かせるようになるらしい。前々から興味はあったことだし、いい機会だからPerlを始めてみようかという気になった。
PerlやCGIプログラムの本は各社からゴマンと出ているが、オライリーから完全なリファレンスマニュアルと質の高い入門書が出ていると聞いていたから、迷うこともないだろうと思って書店に行った。確かにそれはそこにあったのだが、オライリー・ジャパンのPerlに関する書籍は4冊になっていた。そのうちの2冊が入門書のようだ。『初めてのPerl 第2版』と『初めてのPerl Win32システム』である。タイトルからして、ほぼ同じ内容でUNIX向けとWindows向けということらしい。両者をパラパラとめくってみた限りでも、そう思えた。…が、私はどちらを買えばいいのだろうか。私が主に使っているのはWindowsだが、WebサイトでCGIプログラムを動かすとなればUNIXが主流だろう。どうして一冊にまとめてくれないんだ。いや、きっと内容的に色々な理由があるのだろうが、だとしたら余計に迷ってしまうじゃないか。
その場に立ち尽くすことしばし。結局私はWindows向けのほうを持ってレジに向かった。CGIを云々する前に、自宅のWindows上でPerlを動かせるようになることが先決だろう、ということで自分を納得させたのだ。その裏には「必要だったらもう一冊も買うしかないな」という悲壮な決意も存在していたわけだが。
現時点ではまだ実際にCGIを云々するところまで行っていないので、「もう一冊」が必要になるかどうかはまだ判らない。しかし、とりあえずこの本を読んで、Windows上である程度Perlを動かすことが出来るようになった。まあ、当初の思惑の通りコトは進んでいるということになるだろうか。
この本は、巷の評判通り、非常に質の高い入門書だ。文章は読みやすく、解説は適度に詳しく、情報は大体において完全で、疑問の余地がほとんどなく、構成は整然としている。つまり、この本を頭から読んで行けば、自然にどんどんPerlを理解して行けるのだ。一見当たり前のように思えるが、そうした良質の入門書というのは実に少ない。似たようなことを以前にも何度か書いているのでここではしつこく書かないが、とにかくこういう本はとても貴重なのだ。巻末には、この本にはどんなことが書かれて「いない」のか、ということが書かれている。つまり、そうしたことをもっと知りたい読者は別の本を読むべし、ということなのだが、裏を返せばこれは「書かれていないこと以外はキチンと書かれている」という自信の表れだとも思える。そして実際、それはその通りキチンと書かれているのだ。
私のオライリーに対する信頼が、また少し増したような気がする。
しかし、不満な点もいくつかあることはある。UNIX版とWindows版のどちらを買うか迷ってしまうというのも不満点の一つではあるが、その他に、だ。
一つは、誤植(誤記)が多いこと。内容が間違っているというわけではなく単なる表記ミスばかりなのだが、プログラムリストも含めてこれが結構目につく。一般的な基準からいってもやや多い方だと思う。ちゃんと読んでいれば誤植であることはすぐ判るので大きな問題ではないが、やはり良くないことではあるだろう。私が買ったのは初版第1刷なので、版を重ねれば改善されて行くとは思うが。
もう一つは結構深刻な問題だ。この本は元々Perl4の入門書として書かれたものをPerl5に対応するように改訂した『はじめてのPerl 第2版』を、さらにWindows向けに改訂したものである。つまり、元々はPerl4の本なのだ。Perlは4から5へのバージョンアップで、単純な機能拡張だけでなく根本的に大きな変化をしている。もちろん基本的なプログラミングの方法は同じなのだが、オブジェクト指向への対応やモジュール構造の導入など、システムの仕組み自体が変わっているのだ。この本では主にPerl4でもPerl5でもほとんど変わらない基本的な部分を扱っているので、その限りにおいてはほぼ完全な内容と言っていいと思うのだが、終盤に少々出て来る、Perl5で大きく変わった部分、あるいはPerl5で追加された部分に関しては、かなりあっさりとした解説になってしまっている。機能拡張モジュールの使い方やオブジェクトのメソッドの扱い、そしてリストやハッシュへの参照についてなど、かなり駆け足で例を示すだけに留まっている。それでも「おざなり」というほどにひどくはないのだが、基本部分の解説が実にしっかりしているため、それと比較して違和感と不満を大きく感じてしまうのだ。
もっとも、これらのことに関して詳しく知りたい場合は、やはりそれなりの別の本を読むのが本筋なのだろうとは思うが。
そんなわけで、私はこの本のおかげでほぼ理想的な形でPerlの世界に入門することが出来たと思う。その一方で、この本の記述では明らかに不足している部分が色々あることも判明してしまったため、少なくとももう一冊、今度は網羅的で詳細な解説書あるいはリファレンスマニュアルを買わなくてはならなくなった。恐らくはそれもオライリーの本になるだろうと思うと、完全に出版社の術中にハマっているような気がして悔しくもあるのだが、実際に最も質の高い書籍を探すと多くの場合オライリーの本になるので、無駄な抵抗は試みないことにしようと思っている。