404 motivation not found | t_ishidaのブログ

5月/08

12

Perlの書籍案内

能書き

今まで読んだPerlの書籍から良いと思ったものを紹介しようと思う。なんで?今更?とかって言われると本当にこまるところだけど、単にYAPC::Asiaが近いから本を読み直していたら思い立ったってだけ。

そもそもPerlとは?

はてなキーワードに書いてあるのを見てもらっても良いし、単にググっても良い説明が沢山あると思うので、そちらを参照してもらうのも良いと思うけど、簡単に説明すればスクリプト言語です。特徴としては、

  • 非常に柔軟な構文*1
  • 非常に高機能*2
  • 非常に強力な正規表現
  • 適度にハードウェアが見える
  • 割と高速

Perlと言う名称は、”Practical Extraction and Report Language”*3、”Pathologically Eclectic Rubbish Lister”*4のかけ言葉です。その名の通り。主に文字列操作に使われます。と言うか、ラリーがC言語でログからレポートを作成するのが面倒くさくて作った言語です。なので、

  • 大量の文字列から文字列を抜き出す
  • 文字列を整形する
  • 文字列を出力する

と言うのが一番得意で素直な使い方です。

とりわけ、「文字列を整形する」が得意なので、近年ではWebアプリケーションに使用される事が多いです。が、「簡単な事は簡単に難しい事も出来る」と言う哲学の元、コンピュータ上で可能な事は、ほとんどできると考えても良いでしょう。が、向き不向きは有ります。例えば、

  • 大量の数値計算*5
  • Windows的、GUIの作成*6
  • 所謂、色んな人がメンテする業務アプリ*7

Perlを習得するメリット

とにかく、ありとあらゆる環境に移植されていて、Linux,UnixだけではなくWindowsやMacの上でも動きます。ちょっとしたルールのあるファイルの一括コピーや、バックアップの自動化など日常の”メンドイこと”から、Webアプリを作って情報の共有やら、いろんな”メンドイ”、”ダルい”から解放されます。本当に、”ちょっとした事”を楽にする*8のに、いちいちコンパイラに怒られなくて済むのが良いところです。が、一番のメリットと言えば、Perlはその名の通り、”病的折衷主義”なので、いろんな言語の良いところを取り入れてますし、逆に、良いところがいろんな言語に移植されています。Perlひとつを学ぶ事で、仕事で別の言語に触れる時、「Perlだと、ああ言うのが有ったけど、この言語だと、どうやんだっけ?」と勘が働き易くなります。特にSIerの人は、いろんな言語に触れることが多いと思うので、そう言った意味で非常にお勧めです。

じゃあ実際に書籍を紹介

リャマ本

リャマ本と呼ばれる奴です。チュートリアル形式に沿って、読んで書いてしているうちに、”Perlでプログラムが書ける”ようになる。と言う素敵な本です。ラクダ本を読みこなせず、悩んでいた時期に出会って、これを読みながら、Perlを書いているうちに、ラクダ本を楽しく読めるようになった・・・と言う思い出の一冊です。ちなみに、続の方は通読したものの再読はしていません。要らないかも・・・と思いつつ、人によっては、続を読む事でラクダ本が読みやすくなったと言う人もいるので、手元に置いておいて損はないかも知れません。会社に置いておくとパクられる可能性が高い本の一つ。必読

ラクダ本

他の言語圏の人も知っている人が多いんじゃないでしょうか?言わずと知れたラクダ本ですね。面白いの一言に尽きると思います。ウィットの効いたジョークと豊富で整理された情報に「楽しくて読む技術書」と言う他ではなかなか味わえない読書経験を味わう事ができます。が、非常に細かく書いてあるので初学者が読みこなすのは非常に大変です。リャマ本から先に読むことをお勧めします。

ところで正規表現の勉強にはフクロウ本が良いと言う意見をよく聞きますが、個人的には正規表現の理解には、ラクダ本がお勧めです。情報量ではラクダ本だけだと負けるかも知れませんが、分りやすさではラクダ本に軍配をあげたいと思っています。

リャマ本のところで”Perlでプログラムが書ける”と表現したのは、Perlでプログラムが書ける人と、Perlerは、区別すべきだと思ったからです。本書のVolume2からの文化としてのPerlの項を読むと、Perlerとは何か?が掴めるんじゃないかと思います。Perlerとしてのメンタリティを掴むためには、このラクダ本を読むのが最短距離だと信じています。必読

Perl救命病棟

Perlerってのは自己主張の強い生き物です。そこいら中に転がっているソースを見て下さい。同じ事をやるのでも、まったく別のソースって言うのが多くて、ちょっと見ただけでは何をやっているのか分らないものが多いと思います。それ故に、楽しく、それ故に学び続ける楽しさがあるのです。

が、仕事でメンテナンスする上では、それは両刃の剣とも言えるでしょう。そのメンテナンスに着目したのが本書です。Perlで飯食っていこうっていう人は必読。

Perl Hacks
Perl Hacks: Tips & Tools for Programming, Debugging, And Surviving (Hacks)

Perl Hacks: Tips & Tools for Programming, Debugging, And Surviving (Hacks)

PerlerがPerlerに送る、Perlをより楽しむためのテクニックが詰まった本です。Perlでデバッグ効率を上げるためのテクニックとか、Perlで名前付き引数を受け付ける構文を作るには?とか。勿論、そんなテクニックをそのまんま使うのも、良いのですが着眼点と発想をパクって、「他の言語でこれを流用するには?」、「これができるのであれば、アレもできるのではないか?」、「この考え方をアソコで応用したら?」等と想像を膨らませながら読めば楽しさはより一層です。

Perlクイズ
結城浩のPerlクイズ

結城浩のPerlクイズ

ちょっと昔に、id:hyukiさんがやっていたメーリングリストのまとめ本です。Perlでこういう問題を解くには?と、id:hyukiさんがメーリングリストで問いかけて、参加者が回答すると言うものです。1ライナーにこだわる人、変態的な回答する人*9、まさにPerlならではの遊び心が詰まった企画だったと思います。

参考資料

自宅に帰ってきたので追記します。が、2冊しか手元になかった・・・。多分、残りは実家か、元の会社か・・・

えっと正直あんまり面白くはありません。特に前半部分は読んだ記憶すら有りません。リャマ本・続リャマ本とちょっとした知識で全部対応できるレベルです。が、いい加減いい値段払っても18,20章は手元に置いておきたい内容。*10

  • 18、Perlを拡張する最初のコース
    • 主にXSの内容ですね。PerlをC言語で拡張するための仕組みです。具体的には、PerlからCの関数を呼べる仕組みですね。他の本で、これについて触れている記憶が無いので、このキーワードが有るだけで嬉しい
  • 20、Perlの内部構造
    • ってか、ここしか面白くないです。Perlの中身がどうないっているのか?について触れています。
入門Perl DBI

入門Perl DBI

Perl DBIと言う、PerlからDBに接続するための仕組みについての解説本です。無駄に詳しく書いています。DBIを使うためにはどうしたら良いか?どう使うべきか?を超えてしまった内容です。ぶっちゃけDBIを作りたくなります。が、多大な苦労も見えかくれしているので、2秒であきらめたくもなります。

Blog Hacks ―プロが教えるテクニック&ツール100選

Blog Hacks ―プロが教えるテクニック&ツール100選

Perl Cookbook

Perl Cookbook

Mod_Perl Developer's Cookbook (Developer's Library)

Mod_Perl Developer’s Cookbook (Developer’s Library)

*1:むしろやり過ぎ

*2:むしろやり過ぎ

*3:実用データを発掘してレポーティングするための言語

*4:病的に折衷主義な酷いものを出力するための装置

*5:出来なくはない

*6:出来なくはない

*7:Perlの問題と言うよりPerlerの問題。だが、それが良い。

*8:クイックハック

*9:一番変態だったのは、フィボナッチ数列のベンチマーク問題のid:miyagawa氏の回答

*10:と、思っている

Share and Enjoy:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Tumblr
  • email
  • Facebook
  • FriendFeed

RSS Feed

コメントはまだありません。

Leave a comment!

<< テンプレートエンジンもどき

本の紹介 >>

Find it!

Theme Design by devolux.org

Tag Cloud