ミニマルPerl

―Unix/LinuxユーザのためのPerl習得法

[cover photo]
TOPICS
Programming , Perl
発行年月日
PRINT LENGTH
484
ISBN
978-4-87311-368-5
FORMAT
Print
4,620円
この商品は品切れ再入荷未定です

「ミニマルPerl」とは、Perlの実用性とパワーはそのままに、小さくシンプルにまとめたPerlのサブセットである。この「ミニマルPerl」というアプローチによって、読者は「必要以上にPerlを学ばなくても有益なプログラムを書けるようになる」(「本書について」より)。
本書はそんな新しいPerlの本である。Unix/Linuxユーザを主な対象に、一般的なデータ処理のための実用的なPerlスクリプトを書きながら、Perlプログラミングのポイントを詳しく解説。Perl習得に必要な知識を深く掘り下げる。Perl入門者だけでなく、Perlに再入門したい読者にとっても最適である。

関連ファイル

目次

本書に寄せて
まえがき
本書について

1部 Unix/LinuxユーザのためのミニマルPerl

1章 ミニマルPerlの概要
	1.1 パーリスタン探訪記
		1.1.1 プロのガイドが必要な場合もあって
	1.2 シンプルなPerlも可能
	1.3 ミニマルPerlについて
		1.3.1 ミニマルPerlの誤解を正す
		1.3.2 ミニマルPerlとは
	1.4 無精は美徳
	1.5 構文規則は最少に
		1.5.1 セミコロンで文を終わらせる
	1.6 1行プログラムを書く
		1.6.1 シンプルさと読みやすさのバランス
		1.6.2 簡単なフィルタを実装する
	1.7 まとめ

2章 Perlの基礎
	2.1 Perlの起動オプション
		2.1.1 1行プログラミング: -e
		2.1.2 警告を有効にする: -w
		2.1.3 入力を処理する: -n
		2.1.4 自動出力付きで入力を処理する: -p
		2.1.5 行末を処理する: -l
		2.1.6 ニューラインなしで出力する: printf
		2.1.7 入力レコードセパレータを変更する: -0digits
	2.2 変数
		2.2.1 特殊変数
		2.2.2 データ変数: $
		2.2.3 レコード番号変数: $.
		2.2.4 ユーザ定義変数
	2.3 モジュールをロードする: -M
	2.4 簡単なスクリプトを作る
		2.4.1 クォートの技法
		2.4.2 真と偽の値
		2.4.3 スイッチを処理する: -s
		2.4.4 warnとdie
		2.4.5 論理andと論理or
		2.4.6 BEGINおよびENDブロックを使ったプログラミング
		2.4.7 useによるモジュールのロード
	2.5 その他の特殊変数
		2.5.1 入出力関連の特殊変数
		2.5.2 フォーマット処理関連の特殊変数
	2.6 標準オプションクラスタ
		2.6.1 一般的なタイプのPerlコマンドに別名を使う
	2.7 プログラムを組み立てる
		2.7.1 出力だけのワンライナーを組み立てる
		2.7.2 入出力を行うスクリプトを組み立てる
	2.8 まとめ

3章 改良版grepコマンドとしてのPerl
	3.1 grepの歴史
	3.2 grepの弱み
		3.2.1 メタキャラクタの不確実性
		3.2.2 制御文字用の文字列エスケープの欠如
		3.2.3 grepperとPerlの機能比較
	3.3 マッチ演算子
		3.3.1 Perlの1行grepper
	3.4 Perlの正規表現構文
	3.5 改良版fgrepとしてのPerl
	3.6 $&を使ってマッチ部分だけを表示する
	3.7 マッチしないレコードを表示する(grep -v)
		3.7.1 データのチェックを行う
		3.7.2 ショートカットメタキャラクタでキー入力の手間を省く
	3.8 ファイル名だけを表示する(grep -l)
	3.9 マッチ修飾子
		3.9.1 大文字小文字の違いを無視する(grep -i)
	3.10 改良版egrepとしてのPerl
		3.10.1 カスケーディングフィルタを使う
	3.11 コンテキスト内マッチング
		3.11.1 段落モード
		3.11.2 ファイルモード
	3.12 行をまたがる正規表現
		3.12.1 行をまたがるマッチング
		3.12.2 lwp-requestを使う
		3.12.3 lwp-requestの出力をフィルタ処理する
	3.13 その他の例
		3.13.1 ログファイル分析
		3.13.2 スクリプトバージョンのgrepper
		3.13.3 ファジーマッチング
		3.13.4 Webスクレイピング
	3.14 まとめ

4章 改良版sedコマンドとしてのPerl
	4.1 sedの歴史
	4.2 sedの弱み
	4.3 置換処理を実行する
		4.3.1 行指定の置換:sed
		4.3.2 行指定の置換:Perl
		4.3.3 レコード指定の置換:Perl
		4.3.4 後方参照と番号付き変数を置換で使う
	4.4 番号で行を表示する
		4.4.1 番号による行表示: sed
		4.4.2 番号による行表示: Perl
		4.4.3 番号によるレコード表示: Perl
	4.5 テンプレートに修正を加える
	4.6 特殊文字を変換する
	4.7 ファイルを編集する
		4.7.1 コマンドによる編集
		4.7.2 スクリプトによる編集
		4.7.3 上書き編集に対する防御策
	4.8 大文字または小文字に変換する
		4.8.1 スパムを黙らせる
	4.9 計算置換を使う
		4.9.1 マイルをキロメートルに変換する
		4.9.2 関数の実行結果を使った置換
	4.10 sedをPerlに変換する
	4.11 まとめ

5章 改良版awkコマンドとしてのPerl
	5.1 AWKの歴史
	5.2 awkとPerlの基本機能を比較する
		5.2.1 パターンマッチング機能
		5.2.2 特殊変数
		5.2.3 Perlの変数展開
		5.2.4 Perlのその他の強み
		5.2.5 基本機能の違いのまとめ
	5.3 フィールド処理
		5.3.1 フィールドにアクセスする
		5.3.2 フィールドを表示する
		5.3.3 printの構文の違い
		5.3.4 カスタムフィールドセパレータを使う
	5.4 パターンとアクションによるプログラミング
		5.4.1 パターンマッチングとフィールド処理を組み合わせる
		5.4.2 表からデータを抽出する
		5.4.3 配列の添え字を使ってセルデータにアクセスする
	5.5 レコードの範囲にマッチさせる
		5.5.1 単一レコード範囲と複数レコード範囲
		5.5.2 日付の範囲でマッチさせる
		5.5.3 複数の範囲にマッチさせる
	5.6 関係演算子と算術演算子
		5.6.1 関係演算子
		5.6.2 算術演算子
	5.7 組み込み関数
		5.7.1 関数を使ったワンライナー
		5.7.2 nexprの伝説
	5.8 その他のプログラム例
		5.8.1 複利計算を行う: compound_interest
		5.8.2 名詞を条件付きで複数形にする: compound_interest2
		5.8.3 ログファイルを分析する: scan4oops
	5.9 AWKをPerlに変換する: a2p
		5.9.1 a2pの利用上のヒント
	5.10 まとめ

6章 改良版findコマンドとしてのPerl
	6.1 findとperlの混成プログラム
	6.2 findとPerlのファイルテスト機能
		6.2.1 findをPerlで強化する
	6.3 ファイルを見つけ出す
		6.3.1 ファイル名マッチングでファイルを見つけ出す
		6.3.2 パス名マッチングでファイルを見つけ出す
	6.4 ファイル名引数を処理する
		6.4.1 grepの惨事を防ぐ
		6.4.2 再帰grep処理
		6.4.3 汎用引数プリプロセッサとしてのPerl
	6.5 find | xargsとPerl
		6.5.1 ソートをPerlで保証する
		6.5.2 複数語のファイル名を扱う
	6.6 Perlの引数プリプロセッサとしてのfind
	6.7 OSに縛られないfindコマンド
		6.7.1 find2perlを最大限に活用する
		6.7.2 Unixでない友人をfind2perlで援助する
	6.8 まとめ

2部 Unix/LinuxシェルプログラマのためのミニマルPerl

7章 組み込み関数
	7.1 評価コンテキストとは
		7.1.1 評価コンテキストの決定要因と効果
		7.1.2 評価コンテキストを利用する
	7.2 スカラーを生成または処理する関数を使う
		7.2.1 splitを使う
		7.2.2 localtimeを使う
		7.2.3 statを使う
		7.2.4 chompを使う
		7.2.5 randを使う
	7.3 リストを処理する関数を使う
		7.3.1 UnixのパイプラインとPerlの関数
		7.3.2 sortを使う
		7.3.3 grepを使う
		7.3.4 joinを使う
		7.3.5 mapを使う
	7.4 ファイル名をグロブする
		7.4.1 グロブする上でのヒント
	7.5 関数でファイルを管理する
		7.5.1 複数の値をとる戻りコードを処理する
	7.6 関数の引数を括弧で囲む
		7.6.1 引数を食べ尽くす関数を制御する
	7.7 まとめ

8章 スクリプトの作成
	8.1 スクリプト向けの関数を使う
		8.1.1 definedの定義
		8.1.2 exitで終了する
		8.1.3 shiftでシフトする
	8.2 引数を前処理する
		8.2.1 ファイル名でない引数を使う
		8.2.2 引数をフィルタ処理する
		8.2.3 引数を生成する
	8.3 if/elseを使って条件付きでコードを実行する
		8.3.1 if/elseとand/or
		8.3.2 分岐の技法を組み合わせる
		8.3.3 if/elseの利用上のヒント
	8.4 連結演算子と反復演算子で文字列を処理する
		8.4.1 most_recent_fileスクリプトを改良する
		8.4.2 連結演算子と反復演算子を組み合わせて使う
		8.4.3 連結演算子の利用上のヒント
	8.5 コマンドの出力をソースコード中に展開する
		8.5.1 tputコマンドを使う
		8.5.2 再帰grep処理
		8.5.3 コマンド展開を利用するうえでのヒント
	8.6 systemを使ってOSコマンドを実行する
		8.6.1 レポートを生成する
		8.6.2 systemの利用上のヒント
	8.7 evalでコードを評価する
		8.7.1 Perlシェルを使う
		8.7.2 多機能Perl grepperを賞味する
	8.8 まとめ

9章 リスト変数
	9.1 配列変数を使う
		9.1.1 配列の初期化のための代入とpush
		9.1.2 配列に対する高度な添え字アクセスの技法
		9.1.3 自然な方法でフィールドを取り込む
		9.1.4 おみくじスクリプト
		9.1.5 配列の利用上のヒント
	9.2 ハッシュ変数を使う
		9.2.1 ハッシュを初期化する
		9.2.2 ハッシュに対する高度な添え字アクセスの技法
		9.2.3 組み込みの%ENVハッシュとは
		9.2.4 ハッシュを表示する
		9.2.5 スイッチの代わりに%ENVを使う
		9.2.6 ハッシュによって一意性を保証する
		9.2.7 ハッシュを簡易データベースとして使う
		9.2.8 Webページにおける単語の出現頻度をカウントする
	9.3 シェルとPerlのリストジェネレータを比較する
		9.3.1 ファイル名生成とグロブ
		9.3.2 コマンド置換とコマンド展開
		9.3.3 変数置換と変数展開
	9.4 まとめ

10章 ループ
	10.1 シェルとPerlのループ機構
	10.2 while/untilによるループ
		10.2.1 引数の数値を合算する
		10.2.2 画像ファイルのサイズを縮小する
		10.2.3 ハッシュのキーと値をeachでペア表示する
		10.2.4 暗黙ループの仕組み
	10.3 do while / untilによるループ
		10.3.1 入力プロンプトを表示する
	10.4 foreachによるループ
		10.4.1 複数のファイルをunlinkする
		10.4.2 ファイルを1行ずつ処理する
		10.4.3 ハッシュの内容を表示する
		10.4.4 略語を展開する
		10.4.5 画像ファイルのサイズを縮小する:改訂バージョン
	10.5 forによるループ
		10.5.1 forによる添え字のサポートを活用する
	10.6 ループ制御ディレクティブを使う
		10.6.1 ループをネストさせる
		10.6.2 末尾テスト型のループでループ制御ディレクティブを有効にする
		10.6.3 入力プロンプトを表示する
		10.6.4 continueブロックでループを拡張する
	10.7 CPANのPerl版selectループ
		10.7.1 メニューの選択を簡単に実現する
		10.7.2 ユーザの挙動をモニタリングする
		10.7.3 Perlのmanページを探して表示する
	10.8 まとめ

11章 サブルーチンと変数スコープ
	11.1 サブルーチンでコードを隔離する
		11.1.1 サブルーチンの定義と利用
		11.1.2 use strictを使う
	11.2 変数にまつわる一般的な問題
		11.2.1 変数クロバレーション
		11.2.2 変数マスキング
		11.2.3 変数の問題を回避するうえでのヒント
	11.3 変数のスコープを制御する
		11.3.1 変数をmyで宣言する
		11.3.2 変数をourで宣言する
		11.3.3 変数をlocalで宣言する
		11.3.4 変数スコープのガイドラインについて
	11.4 複雑なプログラムのための変数スコープのガイドライン
		11.4.1 use strictを有効にする
		11.4.2 ユーザ定義変数を宣言してスコープを定義する
		11.4.3 引数を使ってサブルーチンにデータを渡す
		11.4.4 組み込み変数に対する一時的な変更をlocalでローカル化する
		11.4.5 ユーザ定義のループ変数を使う
		11.4.6 ガイドラインを適用する
	11.5 サブルーチンを再利用する
	11.6 まとめ

12章 モジュールとCPAN
	12.1 モジュールを作る
		12.1.1 シンプルモジュールテンプレートを使う
		12.1.2 テンプレートからモジュールを作る
		12.1.3 作成したモジュールをテストする
	12.2 モジュールを管理する
		12.2.1 要求に合ったモジュールを特定する
		12.2.2 特定のモジュールの有無を調べる
		12.2.3 CPANからモジュールをインストールする
	12.3 モジュールを使う
		12.3.1 Business::UPSモジュールを使う
		12.3.2 LWP::Simpleモジュールを使う
		12.3.3 Shell::POSIX::Selectモジュールを使う
		12.3.4 File::Findモジュールを使う
		12.3.5 CGIモジュールを使う
		12.3.6 オブジェクト指向モジュールを利用するうえでのヒント
	12.4 まとめ

著者あとがき

付録A Perlの特殊変数

付録B 括弧の利用についてのガイドライン

用語集

索引