実用Perlプログラミング

実用Perlプログラミング

-Amazon.co.jp: 実用Perlプログラミング: スリラム スリニバサン, Sriram Srinivasan, 須田 隆久: 本
--http://www.amazon.co.jp/exec/obidos/ASIN/4900900826/nilabwiki-22/ref=nosim

-O'Reilly Japan - 実用 Perlプログラミング
--http://www.oreilly.co.jp/books/4900900826/
--->Sriram Srinivasan 著、須田 隆久 訳
--->1998年11月 発行
--->512ページ
--->定価4,725円
--->ISBN4-900900-82-6
--->原書: Advanced Perl Programming
--->
--->この商品は絶版になりました
--->
--->内容
--->
--->クラスやパッケージの使い方、データベースの取り扱い、ネットワーキング、TkによるGUIプログラミング、他言語とのリンク、インタプリタへの埋め込み機能など、Perlに関する高度なプログラミングテクニックをもらさず解説します。Perlを単なるスクリプト言語に終わらせることなく、高度なユーティリティや実用アプリケーションの開発までのノウハウをわかりやすくまとめました。一歩先を行くPerl使いを目指す人のための書籍です。
--->
--->目次
--->
--->訳者まえがき
--->はじめに
--->
--->1章 データリファレンスと無名のメモリ領域
---> 1.1 既存の変数を参照する
---> 1.1.1 リファレンスはスカラーの一種
---> 1.1.2 デリファレンス
---> 1.1.3 スカラーへのリファレンス
---> 1.1.4 配列へのリファレンス
---> 1.1.5 ハッシュへのリファレンス
---> 1.1.6 優先順位の混乱
---> 1.1.7 矢印記法
---> 1.1.8 デリファレンスは自動的には行われない
---> 1.2 リファレンスの使い方
---> 1.2.1 サブルーチンに配列やハッシュを渡す
---> 1.2.2 パフォーマンスの効率
---> 1.2.3 無名のメモリ領域へのリファレンス
---> 1.2.4 多段階の間接参照をデリファレンスする
---> 1.2.5 より一般的なルール
---> 1.3 多重データ構造
---> 1.3.1 複雑な構造を暗黙のうちに生成する
---> 1.3.2 添え字間の矢印を省略する
---> 1.4 参照先データの型を調べる
---> 1.5 シンボリックリファレンス
---> 1.6 メモリ管理の内部実装
---> 1.6.1 参照カウンタ
---> 1.6.2 配列へのリファレンスと配列要素へのリファレンス
---> 1.7 他の言語におけるリファレンス相当の機能
---> 1.7.1 Tcl
---> 1.7.2 Python
---> 1.7.3 C/C++
---> 1.7.4 Java
---> 1.8 参考文献
--->
--->2章 複雑なデータ構造を実装する
---> 2.1 ユーザ定義のデータ構造
---> 2.2 例題:マトリクス
---> 2.2.1 「ハッシュからなるハッシュ」による方法
---> 2.2.2 その他の方法によるマトリクスの表現
---> 2.3 教授、学生、講義
---> 2.3.1 データ表現
---> 2.4 受賞者は誰だ
---> 2.4.1 データ表現
---> 2.4.2 指定された年代のエントリをすべて表示する
---> 2.4.3 すべてのエントリを年代順に表示する
---> 2.4.4 指定された年代と分野に一致するエントリを表示する
---> 2.5 データ構造の整形表示
---> 2.6 参考文献
--->
--->3章 型グロブとシンボルテーブル
---> 3.1 Perlの変数、シンボルテーブル、スコープ
---> 3.1.1 レキシカル変数
---> 3.1.2 レキシカルスコープ vs 動的スコープ
---> 3.2 型グロブ
---> 3.2.1 一時的な別名定義
---> 3.2.2 型グロブによる別名を活用する
---> 3.2.3 別名定義のはらむ危険:変数の自殺
---> 3.3 型グロブとリファレンス
---> 3.3.1 選択的別名定義
---> 3.3.2 定数
---> 3.3.3 無名のサブルーチンに名前を付ける
---> 3.3.4 型グロブへのリファレンス
---> 3.4 ファイルハンドル、ディレクトリハンドル、フォーマット
---> 3.4.1 I/Oのリダイレクション
---> 3.4.2 ファイルハンドルをサブルーチンに渡す
---> 3.4.3 ファイルハンドルを局所化する
---> 3.4.4 文字列とハンドル
--->
--->4章 サブルーチンリファレンスとクロージャ
---> 4.1 サブルーチンリファレンス
---> 4.1.1 リファレンスと名前付きサブルーチン
---> 4.1.2 無名のサブルーチンへのリファレンス
---> 4.1.3 サブルーチンリファレンスをデリファレンスする
---> 4.1.4 シンボリックリファレンス
---> 4.2 サブルーチンリファレンスの使い方
---> 4.2.1 ディスパッチテーブル
---> 4.2.2 シグナルハンドラ
---> 4.2.3 数式のプロット
---> 4.3 クロージャ
---> 4.3.1 クロージャの舞台裏
---> 4.4 クロージャの使い方
---> 4.4.1 クロージャを「賢いコールバック」として使用する
---> 4.4.2 イテレータとストリーム
---> 4.4.3 クロージャ vs オブジェクト
---> 4.5 他の言語との比較
---> 4.5.1 Tcl
---> 4.5.2 Python
---> 4.5.3 C++
---> 4.5.4 Java
---> 4.6 参考文献
--->
--->5章 eval
---> 5.1 文字列形式:実行時コード評価
---> 5.2 ブロック形式:例外処理
---> 5.2.1 標準モジュール
---> 5.3 引用符にご用心
---> 5.4 evalによる式の評価
---> 5.4.1 置換における式の評価
---> 5.5 evalによる実行効率の向上
---> 5.5.1 複数パターンのgrepを高速化する
---> 5.5.2 ファイルの各行から指定の桁位置を抽出する
---> 5.6 evalによるタイムアウト処理
---> 5.7 他の言語におけるeval相当の機能
---> 5.7.1 Tcl
---> 5.7.2 Python
---> 5.7.3 C/C++
---> 5.7.4 Java
---> 5.8 参考文献
--->
--->6章 モジュール
---> 6.1 パッケージとは
---> 6.1.1 パッケージと変数
---> 6.1.2 シンボリックリファレンス
---> 6.2 パッケージとファイル
---> 6.2.1 ロードパス
---> 6.3 パッケージの初期化と破棄
---> 6.4 プライバシー
---> 6.4.1 強制力のあるプライバシーを実現する
---> 6.5 シンボルをインポートする
---> 6.5.1 useとExporterの働き
---> 6.6 パッケージの入れ子
---> 6.7 自動ロード
---> 6.8 シンボルテーブルにアクセスする
---> 6.9 他の言語との比較
---> 6.9.1 Tcl
---> 6.9.2 Python
---> 6.9.3 C/C++
---> 6.9.4 Java
--->
--->7章 オブジェクト指向プログラミング
---> 7.1 オブジェクト指向への招待
---> 7.2 Perlにおけるオブジェクト
---> 7.2.1 属性
---> 7.2.2 ユニークな識別情報
---> 7.2.3 ふるまい
---> 7.2.4 ポリモーフィズムの必要性
---> 7.2.5 クラスメソッドとクラス属性
---> 7.2.6 継承の必要性
---> 7.2.7 オブジェクトの破棄
---> 7.2.8 属性アクセスメソッド
---> 7.3 UNIVERSAL
---> 7.3.1 メソッドを探索する
---> 7.4 スタイルの要約
---> 7.5 例題:パソコンショップ
---> 7.6 他のオブジェクト指向言語との比較
---> 7.6.1 Tcl
---> 7.6.2 Python
---> 7.6.3 C++およびJava
---> 7.7 参考文献
--->
--->8章 オブジェクト指向:次のステップ
---> 8.1 効率的な属性格納方法
---> 8.1.1 ObjectTemplate:配列を使った属性格納メカニズム
---> 8.1.2 型グロブを用いた属性格納メカニズム
---> 8.2 デリゲーション
---> 8.3 継承について
---> 8.3.1 属性の継承
---> 8.3.2 実装の継承
---> 8.3.3 インタフェースの継承
---> 8.3.4 継承の代わりに合成を使う
---> 8.4 参考文献
--->
--->9章 tie
---> 9.1 スカラーにtieを使用する
---> 9.1.1 例題:ストップウォッチ
---> 9.2 配列にtieを使用する
---> 9.2.1 TIEARRAYの例:ファイルを配列のように扱う
---> 9.3 ハッシュにtieを使用する
---> 9.4 ファイルハンドルにtieを使用する
---> 9.5 例題:変数を監視する
---> 9.6 他の言語との比較
---> 9.6.1 Tcl
---> 9.6.2 Python
---> 9.6.3 C++
---> 9.6.4 Java
--->
--->10章 データの永続化
---> 10.1 永続化の課題
---> 10.2 ストリームデータ
---> 10.2.1 FreezeThaw
---> 10.2.2 Data::Dumper
---> 10.2.3 Storable
---> 10.3 レコード型アプローチ
---> 10.3.1 DBM
---> 10.3.2 MLDBM
---> 10.3.3 Berkeley DB
---> 10.4 リレーショナルデータベース
---> 10.4.1 DBI(Database Interface)
---> 10.4.2 Win32::ODBC
---> 10.5 参考文献
--->
--->11章 永続オブジェクトの実装
---> 11.1 Adaptorの概要
---> 11.2 設計の留意点
---> 11.2.1 設計上の目標
---> 11.2.2 オブジェクトのカプセル化
---> 11.2.3 オブジェクトとAdaptor間のプロトコル
---> 11.2.4 複数の値を持つ属性とデータベースとの対応付け
---> 11.2.5 継承とデータベースの割り付け
---> 11.2.6 オブジェクトの同一性
---> 11.2.7 オブジェクトの関連付け
---> 11.2.8 メモリ上のオブジェクトの同一性
---> 11.2.9 クエリ
---> 11.2.10 スキーマの進化
---> 11.3 実装
---> 11.3.1 Adaptor::File
---> 11.3.2 Adaptor::DBI
---> 11.4 参考文献
--->
--->12章 ソケットによるネットワーク
---> 12.1 ネットワーク入門
---> 12.2 ソケットAPIとIO::Socket
---> 12.2.1 受信用プログラム
---> 12.2.2 送信用プログラム
---> 12.2.3 双方向通信
---> 12.3 複数のクライアントに対応する
---> 12.3.1 マルチスレッド
---> 12.3.2 selectを用いて入出力を多重化する
---> 12.3.3 ファイルハンドルのブロッキングを禁止する
---> 12.4 実用システムのサーバ
---> 12.5 IOオブジェクトとファイルハンドル
---> 12.6 既製のクライアントモジュール
---> 12.6.1 Net::FTP
---> 12.6.2 Net::POP3
---> 12.7 参考文献
--->
--->13章 ネットワーク:RPCを実装する
---> 13.1 Msg:メッセージングツールキット
---> 13.1.1 Msgの実装
---> 13.2 リモートプロシージャ呼び出し(RPC)
---> 13.2.1 RPCモジュールを使用する
---> 13.2.2 RPC:実装
---> 13.3 参考文献
--->
--->14章 Tkによるユーザインタフェース
---> 14.1 GUI、Tk、Perl/Tkへの招待
---> 14.2 Perl/Tk入門
---> 14.2.1 GUIフォーム:お手軽コース
---> 14.3 ウィジェットツアー
---> 14.3.1 ウィジェットプロパティ
---> 14.3.2 ラベルとボタン
---> 14.3.3 ラジオボタン、チェックボタン
---> 14.3.4 キャンバス
---> 14.3.5 テキストとエントリ
---> 14.3.6 リストボックス
---> 14.3.7 フレーム
---> 14.3.8 メニュー
---> 14.3.9 スクロールの実現とスクロールバー
---> 14.3.10 スケール
---> 14.3.11 階層化リスト
---> 14.4 ジオメトリ管理
---> 14.4.1 パッカー
---> 14.4.2 グリッド
---> 14.5 タイマー
---> 14.6 イベントバインディング
---> 14.6.1 マルチバインディング
---> 14.6.2 イベントの詳細情報
---> 14.7 イベントループ
---> 14.8 参考文献
--->
--->15章 GUIの例:テトリス
---> 15.1 テトリスについて
---> 15.2 設計
---> 15.2.1 ユーザインタフェース
---> 15.2.2 データ構造
---> 15.3 実装
--->
--->16章 GUIの例:マニュアルページビューア
---> 16.1 manとperlman
---> 16.2 実装
---> 16.2.1 マニュアルページを表示する
---> 16.2.2 テキストを検索する
---> 16.2.3 画面レイアウト
---> 16.3 参考文献
--->
--->17章 テンプレートによるコード生成
---> 17.1 コード生成について
---> 17.2 Jeevesの使用例
---> 17.2.1 悪いね、ついでにこれも頼むよ!
---> 17.3 Jeevesの概要
---> 17.3.1 このアーキテクチャの利点
---> 17.3.2 中間Perlコード
---> 17.4 Jeevesの実装
---> 17.4.1 ASTモジュール
---> 17.4.2 テンプレートパーサ
---> 17.4.3 Jeevesドライバ
---> 17.5 仕様記述パーサのサンプル
---> 17.6 参考文献
--->
--->18章 Perlを拡張する:最初のコース
---> 18.1 拡張機能の開発:作業のあらまし
---> 18.1.1 機能拡張の手順
---> 18.1.2 SWIGか、XSか
---> 18.2 例題:Perlでフラクタル図形を描く
---> 18.2.1 SWIGによるFractal
---> 18.2.2 XSによるFractal
---> 18.3 SWIGの機能
---> 18.4 XSの機能
---> 18.4.1 xsubppの働き
---> 18.4.2 省略可能パラメータとデフォルト値
---> 18.4.3 パラメータ値の変更
---> 18.4.4 特殊なコード
---> 18.4.5 C++コード
---> 18.5 自由度
---> 18.6 フラクタルな寄り道
---> 18.7 参考文献
--->
--->19章 CプログラムにPerlを組み込む
---> 19.1 組み込みPerlの用途
---> 19.2 組み込みの概要
---> 19.3 例題:Perlの組み込み
---> 19.4 拡張機能を追加する
---> 19.5 参考文献
--->
--->20章 Perlの内部構造
---> 20.1 ソースを読み解く
---> 20.2 アーキテクチャ
---> 20.2.1 Perlオブジェクト
---> 20.2.2 トランスレータ
---> 20.2.3 エグゼキュータ
---> 20.3 Perlデータ型の構造
---> 20.3.1 スカラー型
---> 20.3.2 配列型(AV)
---> 20.3.3 ハッシュ型(HV)
---> 20.3.4 グロブ型とシンボルテーブル
---> 20.3.5 コード型(CV)
---> 20.3.6 magic変数
---> 20.4 スタックとメッセージングプロトコル
---> 20.4.1 Perlサブルーチンを呼び出す
---> 20.4.2 呼び出される側:外部サブルーチンを自力でコーディングする
---> 20.4.3 その他のスタックの内部構造
---> 20.5 強力な機能拡張
---> 20.5.1 XS機能拡張の解剖
---> 20.5.2 XSの型マップ:概要
---> 20.5.3 XSの型マップを用いたオブジェクトインタフェース
---> 20.5.4 XSの型マップをより汎用化する
---> 20.5.5 C++オブジェクトとXSの型マップ
---> 20.5.6 XSによるメモリ管理
---> 20.5.7 SWIGの型マップ
---> 20.6 簡単組み込みAPIの実装
---> 20.7 将来への展望
---> 20.8 参考文献
--->
--->付録A Tkウィジェットリファレンス
---> A.1 Button――ボタン
---> A.1.1 Radiobutton――ラジオボタン
---> A.1.2 Checkbutton――チェックボタン
---> A.2 Canvas――キャンバス
---> A.2.1 Text――テキストウィジェット
---> A.3 Entry――エントリウィジェット
---> A.4 Listbox――リストボックス
---> A.5 Menuなど――メニュー関連
---> A.6 Scrollbar――スクロールバーとスクロール可能ウィジェット
---> A.7 Scale――スケール
---> A.8 HList――階層化リスト
--->
--->付録B Perl文法の要約
---> B.1 リファレンス
---> B.2 複雑なデータ構造
---> B.3 クロージャ
---> B.4 モジュール
---> B.5 オブジェクト
---> B.6 動的なふるまい
---> B.7 例外処理
---> B.8 メタ情報
---> B.9 型グロブ
---> B.10 ファイルハンドル、フォーマット
--->索引

-Advanced Perl Programming - O'Reilly Media
--http://oreilly.com/catalog/9781565922204/
--->By Sriram Srinivasan
--->Publisher: O'Reilly Media
--->Released: August 1997
--->Pages: 432
--->
--->Description
--->
--->This book covers complex techniques for managing production-ready Perl programs and explains methods for manipulating data and objects that may have looked like magic before. It gives you necessary background for dealing with networks, databases, and GUIs, and includes a discussion of internals to help you program more efficiently and embed Perl within C or C within Perl.
--->
--->So you've learned Perl, but you're getting frustrated. Perhaps you've taken on a larger project than the ones you're used to. Or you want to add a user interface or a networking component. Or you need to do more complicated error trapping.
--->
--->Whether your knowledge of Perl is casual or deep, this book will make you a more accomplished programmer. Here you can learn the complex techniques for production-ready Perl programs. This book explains methods for manipulating data and objects that may have looked like magic before. Furthermore, it sets Perl in the context of a larger environment, giving you the background you need for dealing with networks, databases, and GUIs. The discussion of internals helps you program more efficiently and embed Perl within C or C within Perl.
--->
--->Major topics covered include:
--->
---> Practical use of packages and classes (object-oriented programming)
---> Complex data structures
---> Persistence (e.g., using a database)
---> Networking
---> Graphical interfaces, using the Tk toolkit
---> Interaction with C language functions
---> Embedding and extending the Perl interpreter
--->
--->In addition, the book patiently explains all sorts of language details you've always wanted to know more about, such as the use of references, trapping errors through the eval operator, non-blocking I/O, when closures are helpful, and using ties to trigger actions when data is accessed. You will emerge from this book a better hacker, and a proud master of Perl.
--->Table of Contents
--->
---> Chapter 1 Data References and Anonymous Storage
---> Referring to Existing Variables
---> Using References
---> Nested Data Structures
---> Querying a Reference
---> Symbolic References
---> A View of the Internals
---> References in Other Languages
---> Resources
---> Chapter 2 Implementing Complex Data Structures
---> User-Defined Structures
---> Example: Matrices
---> Professors, Students, Courses
---> Pass the Envelope
---> Pretty-Printing
---> Resources
---> Chapter 3 Typeglobs and Symbol Tables
---> Perl Variables, Symbol Table, and Scoping
---> Typeglobs
---> Typeglobs and References
---> Filehandles, Directory Handles, and Formats
---> Chapter 4 Subroutine References and Closures
---> Subroutine References
---> Using Subroutine References
---> Closures
---> Using Closures
---> Comparisons to Other Languages
---> Resources
---> Chapter 5 Eval
---> The String Form: Expression Evaluation
---> The Block Form: Exception Handling
---> Watch Your Quotes
---> Using Eval for Expression Evaluation
---> Using Eval for Efficiency
---> Using Eval for Time-Outs
---> Eval in Other Languages
---> Resources
---> Chapter 6 Modules
---> Basic Package
---> Packages and Files
---> Package Initialization and Destruction
---> Privacy
---> Importing Symbols
---> Nesting Packages
---> Autoloading
---> Accessing the Symbol Table
---> Language Comparisons
---> Chapter 7 Object-Oriented Programming
---> OO: An Introduction
---> Objects in Perl
---> UNIVERSAL
---> Recap of Conventions
---> Comparison with Other OO Languages
---> Resources
---> Chapter 8 Object Orientation: The Next Few Steps
---> Efficient Attribute Storage
---> Delegation
---> On Inheritance
---> Resources
---> Chapter 9 Tie
---> Tying Scalars
---> Tying Arrays
---> Tying Hashes
---> Tying Filehandles
---> Example: Monitoring Variables
---> Comparisons with Other Languages
---> Chapter 10 Persistence
---> Persistence Issues
---> Streamed Data
---> Record-Oriented Approach
---> Relational Databases
---> Resources
---> Chapter 11 Implementing Object Persistence
---> Adaptor: An Introduction
---> Design Notes
---> Implementation
---> Resources
---> Chapter 12 Networking with Sockets
---> Networking Primer
---> Socket API and IO::Socket
---> Handling Multiple Clients
---> Real-World Servers
---> IO Objects and Filehandles
---> Prebuilt Client Modules
---> Resources
---> Chapter 13 Networking: Implementing RPC
---> Msg: Messaging Toolkit
---> Remote Procedure Calls (RPC)
---> Resources
---> Chapter 14 User Interfaces with Tk
---> Introduction to GUIs, Tk, and Perl/Tk
---> Starting with Perl/Tk
---> Widget Tour
---> Geometry Management
---> Timers
---> Event Bindings
---> Event Loops
---> Resources
---> Chapter 15 GUI Example: Tetris
---> Introduction to Tetris
---> Design
---> Implementation
---> Chapter 16 GUI Example: Man Page Viewer
---> man and perlman
---> Implementation
---> Resources
---> Chapter 17 Template-DrivenCode Generation
---> On Code Generation
---> Jeeves Example
---> Jeeves Overview
---> Jeeves Implementation
---> Sample Specification Parser
---> Resources
---> Chapter 18 Extending Perl: A First Course
---> Writing an Extension: Overview
---> Example: Fractals with Perl
---> SWIG Features
---> XS Features
---> Degrees of Freedom
---> A Detour into Fractals
---> Resources
---> Chapter 19 Embedding Perl:The Easy Way
---> Why Embed?
---> Embedding Overview
---> Examples
---> Adding Extensions
---> Resources
---> Chapter 20 Perl Internals
---> Reading the Source
---> Architecture
---> Perl Value Types
---> Stacks and Messaging Protocol
---> Meaty Extensions
---> Easy Embedding API
---> A Peek into the Future
---> Resources
--->
---> Appendix Tk Widget Reference
---> Button
---> Canvas
---> Entry
---> Listbox
---> Menus
---> Scrollbars and Scrolling
---> Scale
---> HList ― Hierarchical List
---> Appendix Syntax Summary
---> References
---> Nested Data Structures
---> Closures
---> Modules
---> Objects
---> Dynamic Behavior
---> Exception Handling
---> Meta-Information
---> Typeglobs
---> Filehandles, Formats
---> Colophon