続・初めてのPerl 改訂版

[cover photo]
TOPICS
Programming
発行年月日
PRINT LENGTH
328
ISBN
4-87311-305-9
原書
Intermediate Perl
FORMAT
PDF

本書は『初めてのPerl』では説明しきれなかった内容を扱っています。Perlプログラマがステップアップするために必要なPerlのオブジェクト指向メカニズムの基礎となるパッケージ、リファレンス、ハッシュ、配列、サブルーチン、モジュールについて解説し、Perlを使って大規模なプログラムを書く方法を示します。興味深いサンプルコードと章末の練習問題というおなじみのスタイルで、良質な知識を効率よく身に付けられるよう構成されています。Perlプログラマの必読書です。

関連ファイル

目次

序文
はじめに
	
1章 イントロダクション
	1.1 必要な基礎知識は
	1.2 脚注とはどう付き合ったらよいのか
	1.3 練習問題はどうしたらよいのか
	1.4 Perl講座の講師の方に

2章 中級者の基礎知識
	2.1 リスト演算子
		2.1.1 grepによるリストのフィルタリング
		2.1.2 mapによるリストの変換
	2.2 evalによるエラーのトラップ
	2.3 evalによるダイナミックコード
	2.4 練習問題

3章 モジュールの使い方
	3.1 標準ディストリビューション
	3.2 モジュールの使い方
	3.3 関数インタフェース
	3.4 インポートする関数を選ぶには
	3.5 オブジェクト指向インタフェース
	3.6 より典型的なオブジェクト指向モジュール:Math::BigInt
	3.7 CPAN
	3.8 CPANのモジュールをインストールするには
	3.9 適切なタイミングでパスを設定するには
		3.9.1 モジュールの依存関係を処理するには
	3.10 練習問題

4章 リファレンス入門
	4.1 多くの配列に対して同じ処理を実行するには
	4.2 配列へのリファレンスを取るには
	4.3 配列リファレンスをデリファレンスするには
	4.4 中かっこを省略してよいとき
	4.5 配列を書き替えるには
	4.6 ネストしたデータ構造
	4.7 矢印でネストした要素リファレンスをすっきりさせる
	4.8 ハッシュへのリファレンス
	4.9 練習問題

5章 リファレンスとスコープ
	5.1 データへの複数のリファレンス
	5.2 無名配列
	5.3 参照カウントとネストしたデータ構造
	5.4 参照カウントが問題を起こすとき
	5.5 無名配列を直接作るには
	5.6 無名ハッシュ
	5.7 自動生成
	5.8 自動生成とハッシュ
	5.9 練習問題

6章 複雑なデータ構造の操作
	6.1 デバッガを使って複雑なデータを見るには
	6.2 Data::Dumperを使った複雑なデータの表示
	6.3 YAML
	6.4 Storableで複雑なデータを格納するには
	6.5 map演算子とgrep演算子の使い方
	6.6 間接指定のちょっとした応用
	6.7 複雑なデータの選択と変更
	6.8 練習問題

7章 サブルーチンへのリファレンス
	7.1 名前付きサブルーチンを参照するには
	7.2 無名サブルーチン
	7.3 コールバック
	7.4 クロージャ
	7.5 サブルーチンからサブルーチンを返す
	7.6 入力としてのクロージャ変数
	7.7 静的ローカル変数としてのクロージャ変数
	7.8 練習問題

8章 ファイルハンドルへのリファレンス
	8.1 古い方法
	8.2 改良された方法
	8.3 さらによい方法
	8.4 IO::Handle
		8.4.1 IO::File
		8.4.2 無名IO:Fileオブジェクト
		8.4.3 IO::Scalar
		8.4.4 IO::Tee
	8.5 ディレクトリハンドルリファレンス
	8.5.1 IO::Dir
	8.6 練習問題

9章 リファレンスを使った実践的なテクニック
	9.1 ソートとは
	9.2 添字を使ったソート
	9.3 効率のよいソート
	9.4 シュワルツ変換
	9.5 シュワルツ変換を使ったマルチレベルソート
	9.6 再帰的に定義されたデータ
	9.7 再帰的に定義されたデータの構築
	9.8 再帰的に定義されたデータの表示
	9.9 練習問題

10章 大規模なプログラムの構築
	10.1 共通するコードへの対処
	10.2 evalによるコードの挿入
	10.3 doを使う方法
	10.4 requireを使う方法
	10.5 requireと@INC
		10.5.1 @INCの拡張
		10.5.2 PERL5LIBを使った@INCの拡張
		10.5.3 -Iを使った@INCの拡張
	10.6 名前空間の衝突の問題
	10.7 名前空間セパレータとしてのパッケージ
	10.8 packageディレクティブのスコープ
	10.9 パッケージとレキシカル変数
	10.10 練習問題

11章 オブジェクト入門
	11.1 動物と話すことができたら
	11.2 メソッド呼び出しの矢印
	11.3 メソッド呼び出しの特別な引数
	11.4 第2のメソッドを呼び出して話を単純化する
	11.5 @ISAについての注意
	11.6 メソッドのオーバーライド
	11.7 異なる場所からの検索の開始
	11.8 SUPERなやり方
	11.9 @_の処理
	11.10 どこまで来たのか
	11.11 練習問題

12章 データのあるオブジェクト
	12.1 馬は馬、当たり前だろうか
	12.2 インスタンスメソッドの呼び出し
	12.3 インスタンスデータへのアクセス
	12.4 馬を作る方法
	12.5 コンストラクタの継承
	12.6 クラスとインスタンスのどちらを渡してもメソッドが使えるようにするには
	12.7 メソッドへの引数の追加
	12.8 もっとおもしろいインスタンス
	12.9 別の色の馬
	12.10 セッターから何を返すか
	12.11 箱の中を覗かないで
	12.12 より高速なゲッターとセッター
	12.13 セッターとしても使えるゲッター
	12.14 クラス専用メソッドとインスタンス専用メソッド
	12.15 練習問題

13章 オブジェクトのデストラクション
	13.1 オブジェクトが消滅した後のクリーンアップ
	13.2 ネストしたオブジェクトのデストラクション
	13.3 死に馬にむちを打つ
	13.4 間接オブジェクト記法
	13.5 サブクラスでのインスタンス変数の追加
	13.6 クラス変数の使い方
	13.7 リファレンスを弱める
	13.8 練習問題

14章 オブジェクトに関する高度なトピックス
	14.1 UNIVERSALメソッド
	14.2 オブジェクトの動作に関するテスト
	14.3 最後の手段としてのAUTOLOAD
	14.4 AUTOLOADを使ってアクセッサを作る方法
	14.5 もっと簡単にゲッターとセッターを作る方法
	14.6 多重継承
	14.7 練習問題

15章 Exporter
	15.1 useがしていること
	15.2 Exporterを使ったインポート
	15.3 @EXPORTと@EXPORT_OK
	15.4 %EXPORT_TAGS
	15.5 オブジェクト指向モジュールでのエクスポート
	15.6 カスタムインポートルーチン
	15.7 練習問題

16章 ディストリビューションの書き方
	16.1 何事もやり方は1つではない
	16.2 h2xsの使い方
		16.2.1 MANIFEST
		16.2.2 README
		16.2.3 Changes
		16.2.4 META.yml
		16.2.5 プロトタイプモジュール
	16.3 埋め込みドキュメント
	16.4 Makefile.PLによるディストリビューションのコントロール
	16.5 代替のインストール場所(PREFIX=...)
	16.6 ごく簡単なmake test
	16.7 ごく簡単なmake install
	16.8 ごく簡単なmake dist
	16.9 ライブラリの別の場所の指定
	16.10 練習問題

17章 基本的なテスト
	17.1 テストすればするほどコードはよくなる
	17.2 簡単なテストスクリプト
	17.3 テストのコツ
	17.4 テストハーネス
	17.5 Test::Moreを使ってテストを書く
	17.6 オブジェクト指向機能のテスト
	17.7 テストのToDoリスト
	17.8 テストのスキップ
	17.9 より複雑なテスト(複数のテストスクリプト)
	17.10 練習問題

18章 高度なテスト
	18.1 大規模な文字列のテスト
	18.2 ファイルのテスト
	18.3 STDOUTやSTDERRのテスト
	18.4 モックオブジェクトを使ったテスト
	18.5 PODのテスト
	18.6 カバレッジテスト
	18.7 独自のTest::*モジュールの開発
	18.8 練習問題

19章 CPANへの投稿
	19.1 CPAN
	19.2 準備作業
	19.3 ディストリビューションの準備
	19.4 ディストリビューションのアップロード
	19.5 モジュールの公表
	19.6 マルチプラットフォームテスト
	19.7 記事の執筆や講演会への参加
	19.8 練習問題

付録 練習問題の解答
	2章の解答
	3章の解答
	4章の解答
	5章の解答
	6章の解答
	7章の解答
	8章の解答
	9章の解答
	10章の解答
	11章の解答
	12章の解答
	13章の解答
	14章の解答
	15章の解答
	16章の解答
	17章の解答
	18章の解答
	19章の解答

索引