すぐわかる オブジェクト指向 Perl

[表紙]すぐわかる オブジェクト指向 Perl

B5変形判/564ページ

定価(本体3,600円+税)

ISBN 978-4-7741-3504-5

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書は Perl によるリファレンス,モジュール,パッケージ,オブジェクト指向の解説書です。これらを習得するには,どの言語を用いても独特な感覚が必要となりますが,本書では軽量言語 Perl をプラットフォームに選ぶことで,やさしく,楽しく学べることを目指しています。また,本書を通読することで,小さいプログラムを作るのと同じ労力で,大きなプログラムを簡単に作れるようになることを目的としています。

こんな方におすすめ

  • Perlを使いこなしたい人

目次

第1章 いきなりモジュールを使ってみる

  • 1-1 本書のあらすじ
    • 本書のゴール地点
    • 本書のロードマップ
    • 分割プログラミング=分業プログラミング
  • 1-2 File::Find モジュールを使ってみよう
    • ファイルを軒並み処理していく
    • File::Find を使ってみる
    • プログラムの中身を見てみる
    • サブルーチンfileProc
    • プログラムを簡略化してみる
    • 機能を追加してみる
  • まとめ
  • COLUMN 知らないことがあっても別に平気

研究コーナー1 一気読みモードでの文字列操作

  • まず普通の置換
  • 一気読みモード

第2章 「参照」は小粒でピリリと辛い~スカラーリファレンス~

  • 2-1 リファレンスとは何か
    • 「ポインタはF だねぇ」
    • スカラーリファレンスとメモリー空間
    • メモリー空間にアクセスする
    • 名前だけじゃなくて住所も教えてください!
    • デバッグ文字列
  • 2-2 リファレンスのデリファレンス
  • 2-3 デバッガーを使ったプログラムのステップ実行
    • と,ここまで書いてきてふと思ったのですが
    • デバッグ文字列の謎再び
    • ref 関数
    • use strict 'refs';
  • 2-4 名もないスカラー~無名スカラーリファレンス
    • スカラー変数のリファレンスはあまり役に立たない
  • まとめ
  • COLUMN Perl のリファレンスとC 言語のポインタはだいぶ違う

第3章 配列のリファレンス

  • 3-1 配列のリファレンス
    • 配列の復習
    • 配列リファレンスの取得とデリファレンス
    • 2 つ以上の配列をサブルーチンに渡す
  • 3-2 配列要素へのアクセスと矢印記法
    • リファレンスが指す配列の各要素へのアクセス
    • $$refMonth[4] ってわかりにくくないですか
    • 矢印記法
  • 3-3 2 次元配列
    • 自動生成の威力
  • 3-4 シンタックスシュガーが利かない場合
  • 3-5 無名配列
    • ちょっと横道:リストの最後に余計なカンマ
    • 無名配列を使おう
    • ブラケットのネスティング
    • 2 次元配列の2 つの表現
  • まとめ
  • COLUMN カッコの名前

第4章 ハッシュのリファレンス

  • 4-1 ハッシュの復習
    • ハッシュスライス
    • delete 関数
  • 4-2 ハッシュリファレンス
  • 4-3 無名ハッシュ
    • ハッシュリファレンスによるハッシュスライスのアクセス
  • 4-4 2 次元ハッシュ
    • ちょっと横道:プログラムの勉強に便利な__DATA__
    • 2 次元ハッシュプログラムの解説
  • まとめ
  • COLUMN 楽しいファニー文字

第5章 サブルーチンのリファレンス

  • 5-1 サブルーチンの復習
    • サブルーチン=関数=function =機能
  • 5-2 サブルーチンのリファレンス
  • 5-3 無名サブルーチン
  • 5-4 サブルーチンリファレンスの応用
    • サブルーチンの引数としてサブルーチンリファレンスを渡す
    • ハッシュにサブルーチンリファレンスを格納する
  • まとめ
  • COLUMN わからないことは後回しにしよう

研究コーナー2 リファレンスのまとめとシュウォーツ変換

  • スカラーリファレンス
  • 配列リファレンス
  • ハッシュリファレンス
  • サブルーチンリファレンス
  • シュウォーツ変換
  • map の使い方
  • ということでソートの高速化に戻ります

第6章 ライブラリを取り込むrequire

  • 6-1 サブルーチンライブラリの作成
    • サブルーチンを作る
    • サブルーチンを外部ファイルに出してrequire する
  • 6-2 ライブラリの格納場所と配列変数@INC
    • 方法1 : require をフルパスで記述する
    • 方法2 : @INC をいじる
    • 方法3 :環境変数PERL5LIB を使う
    • 方法4 :もともとの@INC を生かす
    • サブルーチン以外をライブラリに入れる
    • 人が作ったファイルをrequire する
  • まとめ
  • COLUMN コピペ禁止

第7章 名前空間を作るpackage

  • 7-1 パッケージとは何か
    • main パッケージってなんだろう
    • File::Find パッケージはどうやって生成しているのだろう
    • パッケージの決まり
    • パッケージ=名前空間
  • 7-2 package とライブラリ
    • package の「普通の」使い方
    • package 文の威力
  • 7-3 パッケージ変数,my 変数,そしてour 変数
    • my とレキシカル変数
    • use strict 'vars' 宣言とmy / our
    • 補足:use strict のいろいろ
  • まとめ
  • COLUMN 英語好きのコンピューター上手

第8章 モジュールを使うuse

  • 8-1 モジュールとuse
    • require からuse へ,ライブラリからモジュールへ
    • pm ファイルの作り方
    • $VERSION 変数について
  • 8-2 import による名前の輸入
    • 「use モジュール名」の裏側
    • 輸出/輸入,する/しない
    • use base ですっきり
  • まとめ
  • COLUMN 規則と慣例
  • 研究コーナー3 本当にFile::Find を自作してみよう

    • まず1 本のプログラムで作ってみよう
    • モジュールの分離

    第9章 オブジェクト指向モジュールの活用

    • 9-1 オブジェクト指向とPerl
      • オブジェクト指向とは何か
      • 変数の型とは
      • Perl とOOP
    • 9-2 CPAN の活用
      • CPAN を見に行く
      • CPAN シェルによるモジュールのインストール
      • Calendar モジュールを使ってみよう
      • Calendar モジュールをさらに使いこなす
    • まとめ
    • COLUMN Perl がバグっている?

    第10章 静的クラスの作成

    • 10-1 クラスとメソッド
      • 三角形の面積を求めよう
      • 構造化プログラミングを導入してみよう
      • モジュール化しよう
      • メソッド呼び出し
    • 10-2 クラスの継承
      • もうひとつ,正三角形を導入する
      • 継承とオーバーライド
      • スーパークラスとサブクラス
      • AUTOLOAD
      • 継承の注意点
      • use base ですっきり
      • 多重継承
      • 正三角形クラスで継承を使う
      • SUPER を使う
      • 上司のお詫びを汎用化する(AUTOLOAD の復習)
    • 10-3 現状での到達点
      • 静的クラス
      • 3 本柱のうち2 本は立てました
      • エクスポートと継承の微妙な関係
      • 間接オブジェクト構文
    • まとめ
    • COLUMN 継承関係は上下関係か

    第11章 オブジェクトクラスの作成

    • 11-1 オブジェクトとは
      • このところ三角形の面積を求めているわけですが
      • クラスからオブジェクトへ
      • クラスとインスタンスとオブジェクト
      • オブジェクトとプロパティ
    • 11-2 オブジェクトクラスの作成
      • Triangle クラスにオブジェクトを作らせる
      • 短くしよう!
    • 11-3 オブジェクトクラスの増強
      • エラーチェック
      • ゲッター/セッターによるカプセル化
    • まとめ
    • COLUMN たとえ話がいっぱい

    第12章 演算子のオーバーロード

    • 12-1 オーバーロードとは
      • 定義
      • メソッドのオーバーロード(Perl ではできない…)
      • 演算子のオーバーロード(Perl でもできる!)
    • 12-2 変換演算子のオーバーロード
      • ,0+ のオーバーロード
    • 12-3 四則演算子のオーバーロード
      • 演算子+,-のオーバーロード
      • 演算子の自動生成
      • 次は引き算だ
      • 掛け算はちょっと凝ってみよう
      • 最後に割り算だ
    • 12-4 特殊演算子nomethod
    • まとめ
    • COLUMN フリーソフトウェアとは

    第13章 オブジェクトクラスの継承,デストラクタ,永続化

    • 13-1 オブジェクトクラスの継承
      • 三角形オブジェクトを継承する
      • さらなるスーパークラスとAUTOLOAD
    • 13-2 デストラクタ
      • DESTROY はデストラクタメソッド
      • ちょっと横道: Perl 58 と510 で挙動が違う?
      • DESTROY の研究(続き)
    • 13-3 オブジェクトの永続化
      • オブジェクトの永続化(手作り編)
      • オブジェクトの永続化(Storable 編)
      • ちょっと横道: store の形式を知らないデータのretrieve
      • オブジェクト指向モジュールにStorable を組み込む
    • 13-4 コンポジション
      • has a 関係とコンポジション
    • 13-5 CPAN モジュール/コアモジュールの継承
    • まとめ
    • COLUMN 知識の三すくみ

    研究コーナー4 対決!ベンチマーク~オブジェクト指向

    • Perl は遅いってホント?~
    • Benchmark モジュールの使い方
    • 第14章 オブジェクト指向モジュールを使ったCGI

      • 14-1 CGIpm を使おう
        • 言語設定,文字設定を直す
        • カレンダープログラム
        • Calendar::Simple モジュール
        • モジュールを組み込む
      • 14-2 レンタルサーバーへのCPAN モジュールのインストール
        • サーバーにログインする
        • CPAN の設定
        • CPAN 前の作業
        • CPAN シェルで初期設定
        • CPAN シェルでインストール
        • テスト
        • レンタルサーバーCGI でのCPAN モジュールの使用
        • CGI::Carp で500 エラーを表示
        • use lib で私用ライブラリを明示
      • 14-3 ユーザー入力の実装
        • CGI プログラムに引数を渡す
        • param にコンソールから値を渡す
        • CGI プログラムにUI を付ける
        • UI にデフォルトを与える
        • エラー処理を行う
        • リストボックスの追加
      • まとめ
      • COLUMN 世の中をカスタマイズしよう

      付録

      • 本書のプログラムの使い方について
      • ActivePerl を入れる
      • ディレクトリを作り,プログラムを置く
      • テスト
      • コマンドプロンプトのコマンド
      • 長い表示結果を見るには
      • ActivePerl のTips

    著者プロフィール

    深沢千尋(ふかざわちひろ)

    汎用機の SE,フリーランスのプログラマーを経て,現在は技術翻訳/ローカリゼーションを行う会社に勤務し,ツールの開発,社内教育などに従事。

    著書に『すぐわかる Perl』(技術評論社刊),『文字コード【超】研究』(ラトルズ刊)。モバイル関係の記事も数多い。