PR:この記事にはアフィリエイトリンクが含まれます。
Perl 5の本には文法の入門書やログ処理の実例集があり、CPANにモジュールを公開するための本もあります。読み終えたあとの実務もかなり違いますよね。
テキスト処理の仕事では正規表現に加え、文字コードやテストも扱います。保守まで見据えると実際の処理を長く使いやすくなります。5冊の範囲を表で見てみましょう。
| 本 | 主な範囲 | 合う目的 |
|---|---|---|
Learning Perl | Perl 5.34まで、正規表現、Unicode、ファイル操作、CPAN | 初心者が練習問題付きで基礎を固める |
Perl One-Liners | 130のコマンドライン実例、文字列変換、行処理 | ログやテキストを手早く抽出・変換する |
Modern Perl | Perl 5.22まで、CPAN、テスト、デプロイと保守 | 実用アプリケーションを継続して管理する |
Writing Perl Modules for CPAN | API、POD、テスト、CPANへの提出と保守 | 自作モジュールを配布する |
Design Patterns in Modern Perl | core Perl、Moo、Object::Pad、テスト駆動開発 | オブジェクト指向の設計を学ぶ |
基礎を固める
Perl 5が初めてなら『Learning Perl』第8版をおすすめします。2021年刊の395ページで、Perl 5.34までの基礎を練習問題とともに学べます。
正規表現やUnicodeを含む文字列処理、ファイル操作に加え、リストとソートも扱います。CPANや外部モジュールの紹介もあるため、文法から周辺の道具まで見通しやすい構成です。
各章の練習問題は、読んだ内容を確かめる機会になります。空行や末尾の改行、日本語を含む入力を用意して、処理結果の違いを比べてみてください。実例を少し変えるだけでも理解が深まります。
最初の一冊を探しているなら、『Learning Perl』第8版を選んでください。Perlの基礎からテキスト処理へ進みたい人が、順序立てて学べる本です。
文字列処理の勘所
正規表現は処理の範囲が読み手に伝わる形で書きます。たとえば s{[ \t]+}{ }g は連続する横方向の空白を一つにまとめる処理です。目的を言葉にできる書き方なら、あとから見直しても迷いません。
文字コードも早めに意識したいところです。入力を文字として扱うのか、バイト列として扱うのかを決め、UTF-8のファイルを読むときは入出力時の文字コードを明示します。小さな例で結果を確かめると、文字化けの原因も追いやすくなります。
日付やCSVのように規則が重なる形式を複雑な検索置換にまとめないほうが安全です。項目ごとに検証すると、問題の箇所を探しやすくなります。地味な手順ですが、後の修正が楽になります。
一行処理が得意
『Perl One-Liners: 130 Programs That Get Things Done』は、2013年刊の168ページです。130本のプログラムを収録しています。文字列の変換・置換や行の抽出・削除に加え、配列や文字列の操作、正規表現の実例もあります。コマンドラインで使う短いプログラム集です。
例を一つ挙げると、perl -ne 'print if m{ERROR}' app.log はログを一行ずつ読み、ERRORを含む行を表示します。コードの形を試しながら動作を確かめられるので、日々の調査で使う短い処理を作るときに便利です。
一行処理は思いついた加工をすぐ試す場面で便利です。ファイルを一括で書き換える場合は、別ファイルへ出力してから数行を確かめましょう。短さと読みやすさの両方に気を配ると安心です。
出版社掲載の参考価格は34.99米ドルで、紙版には電子書籍が付属します。実売価格は時期や販売店で変わります。購入前に販売店の表示を確認してください。短い処理の実例を増やしたい人には、この一冊をおすすめします。
CPANとテスト
『Modern Perl』第4版は2015年刊で、286ページです。対象はPerl 5.22まで。CPANの利用に加え、テスト可能なコードや実用アプリケーションのデプロイと保守も扱います。
本書は書いたスクリプトを継続して運用する段階で役立ちます。処理を小さな関数に分けて入出力を明確にすると、入力例を変えたときの動作を確かめやすくなります。
テキスト処理のテストには空行や重複行に加え、改行のない最終行や想定外の区切りも試します。Test::Moreで期待する出力を確かめ、prove -l tでテストをまとめて実行する方法は、変更時の不安を抑えます。
対象はPerl 5.22までなので、後の版の機能を使う現場では実行環境と照らし合わせてください。Perlでのテストや保守を仕事に取り入れたい人におすすめです。
配布を支える
『Writing Perl Modules for CPAN』は2002年刊の312ページです。CPANでの検索やインストールから、API設計とPOD文書までを扱います。配布ファイルやテスト、CPAN提出後の保守も取り上げます。
複数のスクリプトから同じ処理を呼ぶようになったら、自作モジュールにまとめると再利用しやすくなります。何を受け取り何を返すかを決めて名前と文書を整える流れを、工程に沿って学べます。
2002年刊のため、掲載されたコマンドや手順を現在の環境で試す際は、現行環境を確かめてください。API設計や文書、テストと公開後の保守をひと続きの工程として学びたい人におすすめです。
設計を保つ
『Design Patterns in Modern Perl』は2025年11月刊です。Gang of Fourのデザインパターンをcore Perl、Moo、Object::Padで実装します。テスト駆動開発の章があり、テスト済みの実例も収録しています。
この本の焦点はテキスト処理の個別技法より、処理が大きくなった後の設計です。入力形式ごとの読み込みや共通の検証、結果の出力を分けておけば、新しい形式を加えるとき既存部分への影響を抑えられます。
正規表現の基本を覚える段階で、この本の優先順位は高くありません。スクリプトが複数の役割を抱え、変更のたびに別の箇所まで壊れるようになったら、設計パターンやテストの実例が役立つでしょう。
実務で守る品質
処理の流れを入力から出力まで順に見ると追いやすくなります。入力を文字として読み、正規化したうえで抽出・変換し、出力する。段階ごとに結果を確かめられる構成なら、保守もしやすくなります。
列を分ける前に入力形式を確かめましょう。タブ区切りなら単純な分割で足りる場合があります。一方、引用符や項目内の改行を含むCSVはカンマ分割で正しく扱えません。CSV用モジュールの出番ですね。
テストには正常例のほか空の値や余計な空白も入れます。壊れた行や文字コードの違いも確かめてください。実データから機密情報を除いた例を保存すれば、修正のたびに同じ条件で確認できます。
調査に使うワンライナーは手早い一方、毎日使う処理や失敗時の影響が大きい処理は、スクリプトやモジュールへ移すと管理しやすくなります。記録やテストを加えられ、引き継ぎも簡単です。
結論
Perl 5が初めてなら『Learning Perl』第8版を買ってください。ログ処理の短い実例が必要なら『Perl One-Liners』を加えると、作業の見本が増えます。
CPANを使ったテストや保守には『Modern Perl』を、自作モジュールの公開工程には『Writing Perl Modules for CPAN』をおすすめします。後者は刊行が古いので、モジュール設計や公開工程の基礎を読む目的で選ぶとよいでしょう。
クラス設計やテスト駆動開発まで必要になった段階で『Design Patterns in Modern Perl』へ進んでください。今の仕事で足りない知識に合わせて一冊を決めれば、学んだ内容を実務へ移しやすくなります。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。






