マスタリングPerl

[cover photo]
TOPICS
Programming , Perl
発行年月日
PRINT LENGTH
388
ISBN
978-4-87311-397-5
原書
Mastering Perl, 1st Edition
FORMAT
PDF
Ebook
3,960円
Ebookを購入する

本書は、Perl構文の基本を指南する『初めてのPerl』、再利用可能なPerlソフトウェアを作成する方法を教える『続・初めてのPerl』に次ぐ3番目の書籍として位置付けられるものです。このシリーズ完結編の役割を担っていて、Perlを意のままに自由に操るための方法を伝授します。優れた技を集めたトリック集ではなく、Perlプログラミングについての考え方を説いています。つまりプログラマが日々直面するデバッギング、メンテナンス、設定といった現実の問題を扱えるようになるための解説書なのです。Perlマスタになるために、もしくは解決策を見つけ出す方法を知る、あるいは問題を発見する方法を知る先達(案内人)になるために読むべき書物でしょう。

目次

まえがき
はじめに
1章 Perlマスタになる
    1.1 Perlマスタになるとはどういうことを意味するのか
    1.2 本書の対象読者
    1.3 本書の読み方
    1.4 本書を読むうえでの予備知識
    1.5 本書で扱う内容
    1.6 本書で扱わない内容
2章 高度な正規表現
    2.1 正規表現へのリファレンス
        2.1.1 (?options:PATTERN)
        2.1.2 引数としてのリファレンス
    2.2 非キャプチャグループにする(?:PATTERN)
    2.3 読みやすい正規表現、/xと(?#...)
    2.4 グローバルマッチ
        2.4.1 グローバルマッチアンカー
    2.5 ルックアラウンド
        2.5.1 先読みアサーション、(?=PATTERN)と(?!PATTERN)
        2.5.2 後読みアサーション、(?<!PATTERN) and (?<=PATTERN)
    2.6 正規表現を判読する
    2.7 最終的な考察
    2.8 まとめ
    2.9 お勧めの参考資料
3章 安全なプログラミング技法
    3.1 不正なデータはプログラマの身を滅ぼしかねない
    3.2 汚染チェック(Taint Checking)
        3.2.1 致命的エラーの代わりに警告を使う
        3.2.2 自動的な汚染モード
        3.2.3 mod_perl
        3.2.4 汚染されているデータ
        3.2.5 汚染チェックの副作用
    3.3 汚染データを洗浄する
        3.3.1 IO::Handle::untaint
        3.3.2 ハッシュキー
        3.3.3 汚染されているデータを使って汚染されていないデータを選択する
    3.4 systemとexecのリスト形式
        3.4.1 3引数のopen
        3.4.2 sysopen
        3.4.3 特別な権限を制限する
    3.5 まとめ
    3.6 お勧めの参考資料
4章 Perlのデバッギング
    4.1 多くの時間を浪費する前にするべきこと
    4.2 世界で最もよいデバッガ
        4.2.1 望みの処理を行う
        4.2.2 プログラムのトレース
        4.2.3 安全にモジュールを変更する
        4.2.4 サブルーチンをラップする
    4.3 perl5db.pl
    4.4 代替のデバッガ
        4.4.1 -dとともに別のデバッガを使用する
        4.4.2 Devel::ptkdb
        4.4.3 Devel::ebug
    4.5 その他のデバッガ
        4.5.1 EPIC
        4.5.2 Komodo
        4.5.3 Affrus
    4.6 まとめ
    4.7 お勧めの参考資料
5章 Perlのプロファイリング
    5.1 原因を探りだす
    5.2 一般的なアプローチ
    5.3 プロファイリング用DBI
        5.3.1 その他のDBI::Profileレポート
        5.3.2 さらに処理を簡単にしてみる
        5.3.3 データベースを切り替える
    5.4 Devel::DProf
    5.5 独自のプロファイラを記述する
        5.5.1 Devel::LineCounter
    5.6 テストスイートのプロファイリング
        5.6.1 Devel::Cover
    5.7 まとめ
    5.8 お勧めの参考資料
6章 Perlのベンチマーク
    6.1 ベンチマークテストの理論
    6.2 時間のベンチマーク測定
    6.3 コードを比較する
    6.4 思考の帽子を脱いではならない
    6.5 メモリ使用率
    6.6 perlbenchツール
    6.7 まとめ
    6.8 お勧めの参考資料 
7章 Perlをクリーンアップする
    7.1 よいスタイル
    7.2 perltidy
    7.3 De-Obfuscation(難読化の解除)
        7.3.1 隠ぺいされたソースを解読する
        7.3.2 B::Deparseを使ってコードをアンパースする
    7.4 Perl::Critic
        7.4.1 自分だけのPerl::Criticポリシーを作成する
    7.5 まとめ
    7.6 お勧めの参考資料 
8章 シンボルテーブルと型グロブ
    8.1 パッケージ変数とレキシカル変数
        8.1.1 パッケージバージョンを取得する
    8.2 シンボルテーブル
        8.2.1 型グロブ
        8.2.2 エイリアス
        8.2.3 古いコードでのファイルハンドルの引数
        8.2.4 無名サブルーチンに名前を付ける
    8.3 まとめ
    8.4 お勧めの参考資料
9章 動的サブルーチン
    9.1 データとしてのサブルーチン
    9.2 名前付きサブルーチンの作成と置換
    9.3 シンボリックリファレンス
    9.4 サブルーチンリストの繰り返し処理
    9.5 処理パイプライン
    9.6 メソッドリスト
    9.7 引数としてのサブルーチン
    9.8 オートロードされるメソッド
    9.9 オブジェクトとしてのハッシュ
    9.10 AutoSplit
    9.11 まとめ
    9.12 お勧めの参考資料 
10章 モジュールの修正と応急処置
    10.1 適切な解決策を選ぶ
        10.1.1 パッチを作者に送る
        10.1.2 ローカルパッチ
        10.1.3 モジュールを引き継ぐ
        10.1.4 フォークする
        10.1.5 最初から自分でモジュールを作成する
    10.2 モジュールのパーツを交換する
    10.3 サブクラス化する
        10.3.1 ExtUtils::MakeMakerの例
        10.3.2 その他の例
    10.4 サブルーチンをラップする
    10.5 まとめ
    10.6 お勧めの参考資料 
11章 Perlプログラムの設定
    11.1 してはならない事
    11.2 別ファイルにコードを入れる
    11.2 もっとよい方法
        11.2.1 環境変数
        11.2.2 特別な環境変数
        11.2.3 余分な出力を有効にする
    11.3 コマンドラインスイッチ
        11.3.1 -sスイッチ
        11.3.2 Getoptモジュール
    11.4 設定ファイル
        11.4.1 ConfigReader::Simple
        11.4.2 Config::IniFiles
        11.4.3 Config::Scoped
        11.4.4 AppConfig
        11.4.5 その他の設定フォーマット
    11.5 別名を持つスクリプト
    11.6 インタラクティブと非インタラクティブなプログラム
    11.7 perlのConfig
        11.7.1 各種オペレーティングシステム
    11.8 まとめ
    11.9 お勧めの参考資料
12章 エラーの検出と報告
    12.1 Perlエラーの基本
        12.1.1 オペレーティングシステムエラー
        12.1.2 子プロセスエラー
        12.1.3 オペレーティングシステム固有のエラー
    12.2 モジュールエラーを報告する
        12.2.1 関心の分離
    12.3 例外
        12.3.1 eval
        12.3.2 複数レベルのdie
        12.3.3 リファレンス付きのdie
        12.3.4 dieを使ってオブジェクトを伝播する
        12.3.5 Fatal
    12.4 まとめ
    12.5 お勧めの参考資料
13章 ロギング
    13.1 エラーおよび他の情報を記録する
    13.2 Log4perl
        13.2.1 Log4perlを設定する
        13.2.2 永続的なロギング
        13.2.3 Log::Log4perlのその他の機能
    13.3 まとめ
    13.4 お勧めの参考資料
14章 データ永続性
    14.1 フラットファイル
        14.1.1 pack
        14.1.2 Data::Dumper
        14.2.3 同様のモジュール
        14.1.4 YAML
    14.2 Storable
        14.2.1 データを固める
    14.3 DBMファイル
        14.3.1 dbmopen
        14.3.2 DBM::Deep
    14.4 まとめ
    14.5 お勧めの参考資料
15章 Podを利用する
    15.1 Podフォーマット
        15.1.1 ディレクティブ
        15.1.2 ボディ(本文)の要素
        15.1.3 複数行コメント
    15.2 Podを変換する
        15.2.1 Podトランスレータ
        15.2.2 Pod::Perldoc::ToToc
        15.2.3 Pod::Simple
        15.2.4 Pod::Simpleのサブクラス化
    15.3 Podをテストする
        15.3.1 Podをチェックする
        15.3.2 Podカバレッジ(網羅率)
        15.3.3 関数を隠し、無視する
    15.4 まとめ
    15.5	お勧めの参考資料 
16章 ビットを利用する
    16.1 2進数
        16.1.1 2進数で記述する
    16.2 ビット演算子
        16.2.1 ビット単位の否定(NOT)演算子、~
        16.2.2 ビット単位の論理積(AND)演算子、&
        16.2.3 ビット単位の論理和(OR)演算子、|
        16.2.4 ビット単位の排他的論理和(XOR)演算子、^
        16.2.5 ビットシフト演算子、左シフトの<<と右シフトの>>
    16.3 ビットベクタ
    16.4 vec関数
        16.4.1 ビット文字列の格納
        16.4.2 DNAを格納する
    16.5 データを追跡する
    16.6 まとめ
    16.7 お勧めの参考資料 
17章 タイ変数のマジック
    17.1 見かけは普通の変数
    17.2 ユーザレベルから見たタイ変数
    17.3 舞台裏を覗いてみる
    17.4 スカラー
        17.4.1 Tie::Cycle
        17.4.2 有界整数
        17.4.3 自己消滅する値
    17.5 配列
        17.5.1 配列の再発明
        17.5.2 もう少し現実的なコード例
    17.6 ハッシュ
    17.7 ファイルハンドル
    17.8 まとめ
    17.9 お勧めの参考資料
18章 プログラムとしてのモジュール
    18.1 mainについて
    18.2 昔に逆戻りする
    18.3 呼び出し元は誰か?
    18.4 プログラムをテストする
        18.4.1 プログラムディストリビューションを作成する
        18.4.2 スクリプトに追加する
    18.5 プログラムを配布する
    18.6 まとめ
    18.7 お勧めの参考資料
付録A お勧めの参考資料
    A.1 Perl言語の書籍
    A.2 Perl言語以外の書籍
付録B brianによるPerl問題を解決するためのガイド
    B.1 問題解決の哲学
    B.2 私が実践している方法
索引