こんなのを待ってた - 書評 - Perl CPAN モジュールガイド

会社のあやしい人から Perl CPAN モジュールガイドを借りてちょい読んでみたら手元に置いておきたくなったので Amazon でぽちりました。最近(といっても結構前だけど・・・)購入した Perl 本を思い返してみると、PERL HACKS とモダン Perl 入門も手元に置いておきたくてぽちった参考書ですが、日常的な実用度からすると本書の方が上かもしれない。特に CPAN の存在を知っていて Perl を使っているプログラマなら手元に置いておいて損はないと思う。

- スポンサーリンク -

なんといっても、本書の特徴は今現在はやり or イケてるモジュールをある程度選別して紹介していること。正直に言うと僕自身、本書に記述されているモジュールのうち 1/3 くらいは存在すら知らなかったものがあります。日常業務から離れた位置にあるモジュールは必要としないので知らない。そんな知らないモジュールの存在を知る良いきっかけになりました。

大げさかも知れないが本書を持っていれば、今後作るであろうプログラムにおいて無駄に車輪の再開発をする必要がなくなるかも知れないし、CPAN という樹海からモジュールを探す手間を削減してくれるかも知れない。
それに加えて各モジュールのサンプルがこれまたコンパクトに纏まっていて理解しやすいこともおすすめする理由です。そしてところどころにちりばめられている小ネタがまたいいです。僕的には JOJO ネタははまります。

これだけのコードを CentOS、 Mac OSX、 Windows の3機種で確認しながらの気の遠くなりそうな執筆作業を考えると本書の 2,600 円は非常に安いと思います。

ただ、誰にでもお勧めかというとそう言うわけではないと思う。モダン Perl 入門や PERL HACKS にも言えることですが、本書は CPAN は普通に使えるレベルの Perl 使いをターゲットとしているので、本当の入門者には何が何だか・・・という状態に陥ると思う。まぁこれは仕方がないことかも。

あと敢えて難点を言えば、コードがダウンロード可能だと嬉しいかなぁ〜と。

モダン Perl 入門は、個人的には今も使う気がおきない Moose や XS について学ぶことができ、本書では今チマチマ作っている AnyEvent を利用したアプリの参考になりました。

本書の目次

1 ユーティリティ
strict/warnings, constant, autodie, Try::Tiny, Scope::Guard

2 データ
List::AllUtils, Scalar::Util, Data::Transformer, Data::Dumper, Data::Clone, Data::Serializer

3 モジュール
lib, FindBin, aliased, Class::Load, String::CamelCase, Sub::Install, Class::Method::Modifiers

4 クラス
base, Exporter, Carp, Any::Moose, namespace::autoclean, Class::Trigger, Module::Pluggable, overload

5 文字
Encode, utf8, open, Encode::Local

6 言語
Lingua::JA::Moji, Lingua::EN::Inflect, Locale::Language, Locale::Maketext::Simple

7 地域
Locale::Country, Geo::IP, Geo::Coordinates::Converter, Geography::JapanesePrefectures
8 日付
Time::HiRes, Time::Piece, Date::Japanese::Era, Calendar::Simple, Time::Duration,

9 数学
bignum, Math::Trig, Math::Random::MT

10 アルゴリズム
Digest::MD5, Crypt::SaltedHash, Authen::Simple, Algorithm::CheckDigits, Algorithm::NaiveBayes

11 正規表現
Regexp::Assemble

12 ファイル
IO::File, Fcntl, Path::Class, File::chdir, File::Temp, File::HomeDir, Filesys::Notify::Simple

13 テキスト
Text::Markdown, Text::Xslate, Text::Truncate, Number::Format, URI::Find

14 HTML
HTML::Entities, HTML::TreeBuilder::XPath, Web::Scraper

15 画像
Imager, Imager::QRCode

16 データフォーマット
JSON, YAML, Config::Tiny, XML::Simple, XML::LibXML, XML::Feed, Text::CSV, Data::ICal, Text::vFile::asData, PDF::API2

17 アーカイブ
Archive::Extract, Archive::Zip

18 コマンドライン
Getopt::Long, App::Options, Config::Pit, Term::ReadLine

19 デスクトップ
Growl::Any, Clipboard

20 外部コマンド
IPC::Cmd, File::Which, Capture::Tiny

21 ログ
Log::Handler

22 データベース
DBI, SQL::Maker, DBIx::Connector, Data::Page, Data::UUID, String::Random, Number::RecordLocator

23 キャッシュ
Cache::FileCache, Cache::Memcached::Fast

24 インターネット
URI, URI::Escape, MIME::Base64, MIME::Types, LWP::UserAgent, LWP::RobotUA, WWW::Mechanize, WebService::Simple

25 メール
Email::Address, Email::MIME, Email::Send, Net::POP3, Net::IMAP::Simple

26 携帯電話
Encode::JP::Mobile, HTTP::MobileAgent, Email::Address::JP::Mobile

27 ウェブアプリケーション
Plack, Plack::Builder, Router::Simple, FormValidator::Lite, HTML::FillInForm, JavaScript::Value::Escape

28 イベント駆動
AnyEvent, AnyEvent::HTTP, AnyEvent::Twitter

29 テスト
Test::More, Test::Harness, Test::use::ok, Test::Requires, Test::Pod, Test::Perl::Critic, Test::MockObject, Test::TCP, Test::Base, Test::Memory::Cycle, Devel::Cover

30 開発支援
Benchmark, Devel::NYTProf, Devel::SimpleTrace, Perl::Tidy, Smart::Comments, Pod::ProjectDocs, Inline::C

31 ディストリビューション
Module::Install, File::ShareDir, ShipIt

32 インストール
App::cpanminus, perl

- スポンサーリンク -

関連する記事&スポンサーリンク