初めてのPerl 第3版

目次


訳者まえがき
はじめに

1章 Perl入門
	1.1 質問とその答え
		1.1.1 これはわたしに向いている本でしょうか?
		1.1.2 なぜこんなにたくさんの脚注が付いているのでしょうか?
		1.1.3 練習問題と解答について教えてください
		1.1.4 練習問題の先頭の数字は何を意味するのでしょうか?
		1.1.5 私はPerlコースの講師なのですが、どうすればいいでしょうか?
	1.2 Perlとは何の略なのでしょうか?
		1.2.1 なぜLarryはほかの言語を使わなかったのでしょうか?
		1.2.2 Perlは易しいでしょうか難しいでしょうか?
		1.2.3 どのようにしてPerlはこんなに人気を得るようになったのですか?
		1.2.4 いまPerlに何が起こっているのでしょうか?
		1.2.5 Perlはどんなことが得意でしょうか?
		1.2.6 Perlはどんなことが苦手でしょうか?
	1.3 どうやってPerlを手に入れるのでしょうか?
		1.3.1 CPANとは何でしょうか?
		1.3.2 Perlのサポートを得るにはどうすればよ	いでしょうか?
		1.3.3 ほかの種類のサポートはあるのでしょうか?
		1.3.4 Perlのバグを発見したらどうすればよいのでしょうか?
	1.4 どうやってPerlのプログラムを作るのでしょうか?
		1.4.1 単純なプログラム
		1.4.2 このプログラムの中身はどうなっているのでしょうか?
		1.4.3 どうやってPerlプログラムをコンパイルするのでしょうか?
	1.5 Perl早わかりツアー
	1.6 練習問題

2章 スカラーデータ
	2.1 スカラーデータとは?
	2.2 数値
		2.2.1 すべての数値は同じ内部形式で表現される
		2.2.2 浮動小数点数リテラル
		2.2.3 整数リテラル
		2.2.4 10進数以外の整数リテラル
		2.2.5 数値演算子
	2.3 文字列
		2.3.1 シングルクォート文字列リテラル
		2.3.2 ダブルクォート文字列リテラル
		2.3.3 文字列演算子
		2.3.4 数値と文字列間の自動変換
	2.4 Perlに組み込みの警告メッセージ
	2.5 スカラー変数
		2.5.1 適切な変数名を選ぶ
		2.5.2 スカラーの代入
		2.5.3 二項代入演算子
		2.5.4 printによる出力
		2.5.5 スカラー変数を文字列の中に展開する
		2.5.6 演算子の優先順位と結合
		2.5.7 比較演算子
	2.6 if制御構造
		2.6.1 ブール値
	2.7 ユーザからの入力を受け取る
	2.8 chomp演算子
	2.9 while制御構造
	2.10 未定義値
	2.11 defined関数
	2.12 練習問題

3章 リストと配列
	3.1 配列の要素にアクセスする
	3.2 配列の特別なインデクス
	3.3 リストリテラル
		3.3.1 qwショートカット
	3.4 リスト代入
		3.4.1 pop演算子とpush演算子
		3.4.2 shift演算子とunshift演算子
	3.5 配列を文字列の中に展開する
	3.6 foreach制御構造
	3.7 Perlお気に入りのデフォルト:$_
		3.7.1 reverse演算子
		3.7.2 sort演算子
	3.8 スカラーコンテキストとリストコンテキスト
		3.8.1 リストを生成する式をスカラーコンテキストで使う
		3.8.2 スカラーを生成する式をリストコンテキストで使う
		3.8.3 スカラーコンテキストを強制する
	3.9 リストコンテキストでを使う
	3.10 練習問題

4章 サブルーチン
	4.1 システム関数とユーザ関数
	4.2 サブルーチンを定義する
	4.3 サブルーチンを起動する
	4.4 戻り値
	4.5 引数
	4.6 サブルーチンの中でプライベートな変数
	4.7 local演算子
		4.7.1 localとmyの違い
	4.8 可変長のパラメータリスト
		4.8.1 改良版の&maxサブルーチン
		4.8.2 空のパラメータリスト
	4.9 レキシカル変数(my変数)についての注意事項
	4.10 use strictプラグマ
	4.11 return演算子
		4.11.1 アンパーサンドを省略する
	4.12 練習問題

5章 ハッシュ
	5.1 ハッシュとは?
		5.1.1 なぜハッシュを使うのか?
	5.2 ハッシュの要素にアクセスする
		5.2.1 ハッシュ全体を扱う
		5.2.2 ハッシュの代入
		5.2.3 太い矢印
	5.3 ハッシュ関数
		5.3.1 keys関数とvalues関数
		5.3.2 each関数
	5.4 ハッシュの利用法
		5.4.1 exists関数
		5.4.2 delete関数
		5.4.3 ハッシュの要素を変数展開する
	5.5 練習問題

6章 入出力の基本
	6.1 標準入力からの入力
	6.2 ダイヤモンド演算子からの入力
	6.3 起動引数
	6.4 標準出力への出力
	6.5 printfによるフォーマット付き出力
		6.5.1 配列とprintf
	6.6 練習問題

7章 正規表現の基本
	7.1 正規表現とは?
	7.2 単純なパターンを使う
		7.2.1 メタキャラクタについて
		7.2.2 単純な量指定子
		7.2.3 パターンをグループにまとめる
		7.2.4 選択肢
	7.3 パターンをテストするプログラム
	7.4 練習問題

8章 正規表現の詳細
	8.1 文字クラス
		8.1.1 文字クラスのショートカット
		8.1.2 ショートカットの否定
	8.2 汎用の量指定子
	8.3 アンカー
		8.3.1 ワードアンカー
	8.4 カッコによって記憶する
		8.4.1 後方参照
		8.4.2 メモリ変数
	8.5 優先順位
		8.5.1 優先順位の例
		8.5.2 お楽しみはこれからだ
	8.6 練習問題

9章 正規表現の利用法
	9.1 m//を使ってマッチを行なう
	9.2 オプション修飾子
		9.2.1 大文字と小文字を区別せずにマッチする:/i
		9.2.2 あらゆる文字にマッチする:/s
		9.2.3 オプション修飾子をまとめて指定する
		9.2.4 その他のオプション
	9.3 結合演算子:=~
	9.4 変数をパターンに埋め込む
	9.5 マッチ変数
		9.5.1 メモリの有効期限
		9.5.2 自動マッチ変数
	9.6 s///を使って置換を行なう
		9.6.1 /gによるグローバルな置換
		9.6.2 別のデリミタを使う
		9.6.3 オプション修飾子
		9.6.4 結合演算子
		9.6.5 大文字と小文字の変換
	9.7 split演算子
	9.8 join関数
	9.9 練習問題

10章 さまざまな制御構造
	10.1 unless制御構造
		10.1.1 unlessのelse節
	10.2 until制御構造
	10.3 式修飾子
	10.4 裸のブロック制御構造
	10.5 elsif節
	10.6 オートインクリメントとオートデクリメント
		10.6.1 オートインクリメントの値
	10.7 for制御構造
		10.7.1 foreachとforの秘められた関係
	10.8 ループを御制する
		10.8.1 last演算子
		10.8.2 next演算子
		10.8.3 redo演算子
		10.8.4 ラベル付きブロック
	10.9 論理演算子
		10.9.1 短絡演算子の値
		10.9.2 三項演算子 ? :
		10.9.3 部分評価演算子を使って制御構造を実現する
	10.10 練習問題

11章 ファイルハンドルとファイルテスト
	11.1 ファイルハンドルとは?
	11.2 ファイルハンドルをオープンする
		11.2.1 ファイルハンドルをクローズする
		11.2.2 無効なファイルハンドル
	11.3 dieによって致命的エラーを発生させる
		11.3.1 warnによって警告メッセージを表示する
	11.4 ファイルハンドルを使う
		11.4.1 デフォルトの出力ファイルハンドルを変える
	11.5 標準ファイルハンドルを再オープンする
	11.6 ファイルテスト
		11.6.1 stat関数とlstat関数
		11.6.2 localtime関数
		11.6.3 ビット演算子
		11.6.4 ビットストリングを使う
		11.6.5 特別な下線ファイルハンドルを使う
	11.7 練習問題

12章 ディレクトリ操作
	12.1 ディレクトリツリーの中を移動する
	12.2 グロブ
	12.3 グロブのもう1つの書き方
	12.4 ディレクトリハンドル
	12.5 再帰的なディレクトリ処理
	12.6 練習問題

13章 ファイルとディレクトリの取り扱い
	13.1 ファイルを削除する
	13.2 ファイルの名前を変更する
	13.3 リンクとファイル
	13.4 ディレクトリの作成と削除
	13.5 パーミッションを変更する
	13.6 ファイルのオーナーを変更する
	13.7 タイムスタンプを変える
	13.8 単純なモジュールを使う
		13.8.1 File::Basenameモジュール
		13.8.2 モジュールの一部の関数だけを使う
		13.8.3 File::Specモジュール
	13.9 練習問題

14章 プロセス管理
	14.1 system関数
		14.1.1 シェルの起動を避ける
	14.2 exec関数
	14.3 環境変数
	14.4 逆クォートを使って出力を取り込む
		14.4.1 リストコンテキストで逆クォートを使う
	14.5 プロセスをファイルハンドルとして使う
	14.6 forkを使って低レベル処理を行なう
	14.7 シグナルを送受信する
	14.8 練習問題

15章 文字列処理とソート
	15.1 indexを使って部分文字列を探す
	15.2 substrを使って部分文字列をいじる
	15.3 sprintfを使ってデータをフォーマットする
		15.3.1 sprintfを使って金額表示を行なう
	15.4 高度なソート
		15.4.1 ハッシュを値によってソートする
		15.4.2 複数のキーでソートする
	15.5 練習問題

16章 単純なデータベース
	16.1 DBMファイルとDBMハッシュ
		16.1.1 DBMハッシュをオープン/クローズする
		16.1.2 DBMハッシュを使う
	16.2 packとunpackを使ってデータを加工する
	16.3 固定長ランダムアクセスデータベース
	16.4 可変長(テキスト)データベース
		16.4.1 コマンドラインから書き戻し編集を行なう
	16.5 練習問題

17章 上級テクニック
	17.1 evalによってエラーをトラップする
	17.2 grepを使ってリストから要素を選び出す
	17.3 mapを使ってリストを変換する
	17.4 クォートなしのハッシュキー
	17.5 より強力な正規表現
		17.5.1 欲ばりでない量指定子
		17.5.2 複数行のテキストに対するマッチ
	17.6 スライス
		17.6.1 配列スライス
		17.6.2 ハッシュスライス
	17.7 練習問題

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

付録B リャマを越えて
	B.1 豊富なドキュメント
	B.2 正規表現
	B.3 パッケージ
	B.4 Perlの機能を拡張する
		B.4.1 ライブラリ
		B.4.2 モジュール
		B.4.3 モジュールを探してインストールする
		B.4.4 自分でモジュールを書く
	B.5 いくつかの重要なモジュール
		B.5.1 CGIモジュールとCGI_Liteモジュール
		B.5.2 Cwdモジュール
		B.5.3 Fatalモジュール
		B.5.4 File::Basenameモジュール
		B.5.5 File::Copyモジュール
		B.5.6 File::Specモジュール
		B.5.7 Image::Sizeモジュール
		B.5.8 Net::SMTPモジュール
		B.5.9 POSIXモジュール
		B.5.10 Sys::Hostnameモジュール
		B.5.11 Text::Wrapモジュール
		B.5.12 Time::Localモジュール
	B.6 プラグマ
		B.6.1 constantプラグマ
		B.6.2 diagnosticsプラグマ
		B.6.3 libプラグマ
		B.6.4 strictプラグマ
		B.6.5 varsプラグマ
		B.6.6 warningsプラグマ
	B.7 データベース
		B.7.1 システムデータベースに直接アクセスする
		B.7.2 フラットなファイルのデータベースにアクセスする
		B.7.3 リレーショナルデータベースにアクセスする
	B.8 その他の演算子と関数
		B.8.1 tr/ / /による変換
		B.8.2 ヒアドキュメント
	B.9 数学
		B.9.1 高度な数学関数
		B.9.2 虚数と複素数
		B.9.3 大きな数と精度の高い数
	B.10 リストと配列
		B.10.1 mapとgrep
		B.10.2 splice演算子
	B.11 ビット操作
	B.12 フォーマット
	B.13 ネットワークとIPC
		B.13.1 System V IPC
		B.13.2 ソケット
	B.14 セキュリティ
	B.15 デバッグ
	B.16 CGI(Common Gateway Interface)
	B.17 コマンドラインオプション
	B.18 組み込み変数
	B.19 さまざまな構文
	B.20 リファレンス
		B.20.1 複雑なデータ構造
		B.20.2 オブジェクト指向プログラミング
		B.20.3 無名サブルーチンとクロージャ
	B.21 タイ変数
	B.22 演算子オーバーロード
	B.23 ダイナミックロード
	B.24 Perlをほかのプログラムに組み込む
	B.25 他の言語からPerlへの変換
	B.26 findコマンドラインをPerlに変換する
	B.27 コマンドラインオプションを受け取る
	B.28 ドキュメントを埋め込む
	B.29 ファイルハンドルをオープンするほかの方法
	B.30 ロケールとUnicode
	B.31 スレッドとフォーク
	B.32 グラフィカルユーザインターフェース(GUI)
	B.33 そしてまだまだ続く……

索引

書籍紹介ページへ戻る


書籍についてのお問い合わせは以下までお願いします。

株式会社オライリー・ジャパン

〒160-0003 東京都新宿区本塩町7番地6 四谷ワイズビル
e-mail:japan@oreilly.com


書籍の購入方法トップページへ戻る