CGI&Perl 究極のレシピ350
2003年2月24日紙版発売
杜甫々 著
B5変形判/336ページ/CD1枚
定価2,838円(本体2,580円+税10%)
ISBN 4-7741-1676-9
ただいま弊社在庫はございません。
書籍の概要
この本の概要
初心者にもわかりやすいと評判の杜甫々さんが執筆したCGI/PerlのTips集。熟練者のみならず,これから,CGI&Perlを学ぶエンジニアにもわかりやすく書かれています。こんなときどうするの?という疑問を解決できるように,例題をふんだんに盛り込んだ一冊となっています。
こんな方におすすめ
- CGI/Perlを学びたい方
- Perlは知っているけど、"こうしたいのに"というときに便利な方法を知りたい方
目次
■01/42 まずは使ってみよう
- 001 Perlを使ってみる
- 002 簡単な計算を行ってみる
- 003 変数を用いる
- 004 コメントを書く
■02/42 Perlスクリプトの実行
- 005 スクリプトを自己起動方式にする(UNIX)
- 006 スクリプトを自己起動方式にする(Windows)
- 007 コマンドの引数を参照する
- 008 引数があるか無いかを判断する
- 009 ワイルドカードを展開する
■03/42 入出力
- 010 画面に文字や値を書き出す
- 011 値を書式付きで書き出す
- 012 複数行をまとめて書き出す
- 013 ヒアドキュメントを利用する
- 014 キーボードからの入力を得る
■04/42 制御
- 015 もし〜であれば
- 016 もし〜でなければ
- 017 さもなくば
- 018 さもなくばもし
- 019 処理をn回繰り返す
- 020 配列の処理を繰り返す
- 021 〜の間処理を繰り返す
- 022 〜になるまでの間処理を繰り返す
- 023 ループを途中で抜ける
- 024 次のループを実行する
- 025 現在のループを繰り返す
- 026 次のループの前処理をする
- 027 ジャンプする
- 028 プログラムを途中で終了する(exit)
- 029 プログラムを途中で終了する(die)
■05/42 数値
- 030 数値を用いる
- 031 切り捨てる
- 032 100の位で切り捨てる
- 033 切り上げる
- 034 四捨五入する
- 035 ランダムな数値を得る
- 036 3桁ずつカンマで区切る
- 037 桁区切りされた数値を解釈する
- 038 16進数を扱う
- 039 8進数を扱う
- 040 2進数を扱う
- 041 数学演算を行う
- 042 丸め誤差を考慮する
- 043 巨大な桁数の整数を扱う
■06/42 文字列
- 044 文字列を用いる
- 045 文字列の中で変数を使用する
- 046 改行する
- 047 文字列の長さを求める
- 048 文字列を比較する
- 049 文字列を連結する
- 050 改行コードを取り除く
- 051 クォーテーションを含む文字列を書き出す
- 052 クォーテーションを多量に含む文字列を書き出す
- 053 文字列をカンマで区切る
- 054 文字列をホワイトスペースで区切る
- 055 文字列の一部を参照する
- 056 文字列の一部を書きかえる
- 057 文字列を1文字ずつ処理する
- 058 特定の文字が含まれているか捜す
- 059 特定の文字が何文字含まれているか求める
- 060 複数行にわたる文字列を代入する
- 061 書式付きの文字列を生成する
- 062 文字列の中でサブルーチンを展開する
- 063 文字列の中でPerl文を実行する
- 064 文字から文字コードに変換する
- 065 文字コードから文字に変換する
- 066 小文字・大文字変換する
■07/42 正規表現
- 067 文字列を正規表現で調べる
- 068 〜で始まる,〜で終わる
- 069 複数行にマッチさせる
- 070 n文字の〜
- 071 〜の中のいずれか1文字
- 072 〜または
- 073 特殊文字
- 074 任意の〜文字
- 075 大文字・小文字を無視してマッチングする
- 076 連続してマッチさせる
- 077 高速にマッチさせる(1)
- 078 高速にマッチさせる(2)
- 079 マッチした文字列を取り出す(1)
- 080 マッチした文字列を取り出す(2)
- 081 スラッシュを多く含むマッチングを行う
- 082 最初に現れるパターンを捜す
- 083 直前のマッチングの位置を得る
- 084 メタ文字を無効化する
- 085 数値の正規表現
- 086 時刻表記の正規表現
- 087 メールアドレスの正規表現
- 088 URLの正規表現
■08/42 文字の置換
- 089 文字列の一部を置換する
- 090 大文字・小文字を区別しないで置換する
- 091 マッチする部分をすべて置換する
- 092 置換文字を式で与える
- 093 高速に置換する
- 094 正規表現の中でスラッシュを多く使用する
- 095 特殊文字を対応する文字に置換する
- 096 HTMLのコメントを削除する
■09/42 漢字
- 097 日本語変換ライブラリを入手する
- 098 漢字コードについて
- 099 漢字コードを調べる
- 100 漢字コードを変換する
- 101 半角文字を全角文字にする
- 102 半角カタカナを全角カタカナにする
- 103 日本語混じり文の文字数を数える
- 104 日本語混じり文を1文字ずつ処理する
- 105 日本語の文字化けに対応する
- 106 Jcode.pmをインストールする
- 107 Jcode.pmを使用する
- 108 シフトJISをUnicodeに変換する
- 109 UnicodeをシフトJISに変換する
■10/42 配列
- 110 配列に値を設定する
- 111 配列を参照する
- 112 配列を表示する
- 113 配列に追加・削除する
- 114 配列の途中の要素を追加・削除・置換する
- 115 配列を連結する
- 116 配列を辞書順にソートする
- 117 配列を数値順にソートする
- 118 高度な比較で配列をソートする
- 119 配列を逆順に並び替える
- 120 条件にあうものだけを抜き出す
- 121 各要素に対して処理を行う
- 122 多次元配列を使用する
■11/42 連想配列
- 123 連想配列を使用する
- 124 連想配列にまとめて代入する
- 125 連想配列を連結する
- 126 連想配列の個々の要素について処理する
- 127 連想配列を代入した順序通りに処理する
- 128 連想配列をキーの辞書順に処理する
- 129 連想配列を値の辞書順に処理する
- 130 連想配列を削除する
- 131 多次元連想配列を用いる
- 132 省略できるものは省略する
■12/42 変数
- 133 変数の種類を理解する
- 134 環境変数を参照・設定する
- 135 型グロブを用いる
- 136 定数を使用する
- 137 変数を未定義状態にする
- 138 要素を削除する
- 139 複数の変数を一度に削除する
- 140 変数や要素の定義状態を調べる
- 141 変数名を動的に作成する
- 142 リファレンスを用いる
- 143 表形式のデータを保持する
■13/42 ファイル
- 144 ファイルに書きこむ
- 145 ファイルを読む
- 146 ファイルの末尾に追記する
- 147 ファイルの先頭に追記する
- 148 読み書きする位置を移動する
- 149 現在の読み書き位置を知る
- 150 ファイルのサイズを得る
- 151 ファイルのサイズを変更する
- 152 標準の出力先を変更する
- 153 ファイルディスクリプタを得る
- 154 書き込み時にバッファリングしないようにする
- 155 低レベルの読み書きを行う
- 156 ファイルの末尾を判断する
- 157 ファイルをロックする
- 158 改行コードを調べる
- 159 flockによるファイルロックを行う
- 160 mkdirによるファイルロックを行う
- 161 スクリプトの末尾にデータを埋め込む
■14/42 ファイル操作
- 162 ファイルが存在するか調べる
- 163 ファイルかフォルダか調べる
- 164 ファイルが読み書き実行可能か調べる
- 165 ファイルを削除する
- 166 ファイル名を変更する
- 167 ファイルをコピー,移動する
- 168 ファイルの更新時刻を変更する
- 169 ファイルの所有者を変更する
- 170 ファイルのパーミッションを変更する
- 171 パーミッションマスクを指定する
- 172 ファイルに関するいろいろな情報を得る
- 173 リンクファイルを作成する
- 174 シンボリックリンクを作成する
■15/42 バイナリデータ
- 175 バイナリファイルの基礎知識
- 176 バイナリファイルを読みこむ
- 177 バイナリファイルに書きこむ
- 178 バイナリデータに詰めこむ
- 179 バイナリデータを解釈する(1)
- 180 バイナリデータを解釈する(2)
- 181 バイナリデータを16進ダンプする
- 182 ビットフラグを操作する
- 183 長いビットフラグを操作する
■16/42 フォルダ
- 184 フォルダを作成する
- 185 階層的にフォルダを作成する
- 186 フォルダを削除する
- 187 フォルダ配下すべてを削除する
- 188 カレントフォルダを得る
- 189 カレントフォルダを移動する
- 190 ルートフォルダを変更する
- 191 ファイルの一覧を得る(1)
- 192 ファイルの一覧を得る(2)
- 193 ファイル一覧の読み込み位置を変更する
- 194 フォルダ配下のすべてのファイルを得る
- 195 フォルダ配下のすべてのファイルを得る(2)
- 196 スクリプトの絶対パスを求める
■17/42 コマンド
- 197 コマンドを実行する
- 198 コマンドの実行結果を読み取る(1)
- 199 コマンドの実行結果を読みこむ(2)
- 200 コマンドにデータを渡す
- 201 コマンドにデータを渡して読み取る
- 202 コマンドの実行結果を捨てる
- 203 コマンドの標準エラー出力を読み取る
■18/42 サブルーチン
- 204 サブルーチンを使用する
- 205 ローカル変数を使用する(1)
- 206 ローカル変数を使用する(2)
- 207 ファイルハンドルをローカル変数にする
- 208 ファイルハンドルを引数として渡す
- 209 複数の配列を引数として渡す
- 210 サブルーチンで変数の値を書きかえる
- 211 引数の省略を可能にする
- 212 コンテキストにより返却値を変える
- 213 戻り値をスカラー値として扱う
- 214 呼び出し元に関する情報を得る
■19/42 ライブラリ
- 215 ライブラリを作る
- 216 ライブラリを読みこむ
- 217 ライブラリを読みこむパス名を制御する
- 218 ライブラリをパッケージとして定義する
■20/42 時間
- 219 現在の日付・時刻を得る
- 220 ファイルの最終更新時刻を得る
- 221 閏年かどうか調べる
- 222 1970年1月1日からの秒数を求める
- 223 時刻の差分を求める
- 224 指定した日付の曜日を求める
- 225 指定した時間待つ
- 226 プロセスが消費した時間を調べる
- 227 パフォーマンスを調べる
■21/42 フォーマット
- 228 書式を指定して出力する
- 229 フォーマットのページヘッダ・フッタを記述する
- 230 複数行にまたがる書式を指定する
- 231 複数のフォーマットを使い分ける
■22/42 簡易データベース
- 232 簡易データベースを用いる
- 233 xDBMを用いる
- 234 CSVファイルを読みこむ
- 235 CSVファイルを変数に読み込む
- 236 項目名付きCSVファイルを読み出す
- 237 CSVファイルに保存する
- 238 Excel形式のCSVファイルを読み出す
- 239 Excel形式のCSVファイルに保存する
■23/42 図形描画
- 240 角度とラジアンの変換をする
- 241 角度と距離からXY座標への変換をする
- 242 XY座標から角度への変換をする
- 243 GIF画像の大きさを求める
- 244 GDをインストールする
- 245 GDで画像を書き出す
- 246 GDの各種描画ルーチン
- 247 GDの使い方(塗りつぶし)
- 248 GDの使い方(色関連)
- 249 GDの使い方(文字)
■24/42 プロセスとシグナル
- 250 プロセスにシグナルを送る
- 251 子プロセスを起動する
- 252 シグナル受信時の処理を指定する
- 253 アラームシグナルを使う
■25/42 ソケット
- 254 IPアドレスの変換(ドット形式←→バイナリ形式)
- 255 IPアドレスの変換(ホスト名形式←→バイナリ形式)
- 256 IPアドレスの変換(ホスト名形式←→ドット形式)
- 257 ソケットの基礎知識
- 258 ソケット通信する(サーバ側)
- 259 ソケット通信する(クライアント側)
- 260 ソケットアプリケーションを動かしてみる
- 261 複数のソケットを監視する
- ■26/42 ネットワークコマンド
- 262 PerlでPINGしてみる
- 263 PerlでFTPしてみる
- 264 Perlでメール送信してみる
- 265 Perlでメール受信してみる
- 266 PerlでHTTPしてみる
- 267 ちょっと高度なHTTPアクセス
■27/42 CGI
- 268 簡単なCGIの例
- 269 ブラウザに関する情報を得る
- 270 すべての環境変数を表示する
- 271 CGIでフォームに入力した値を読み込む
- 272 サーバー上のファイルの内容を表示する
- 273 CGIのエラーページを表示する
- 274 CGIから画像を表示する
- 275 CGIの結果がキャッシュされないようにする
- 276 CGIの結果が文字化けしないようにする
- 277 Cgi.pmを用いてCGIを作成する
- 278 NPHスクリプトを作成する
- 279 定期的に画面を書き換える
- 280 CGIの結果を逐次書き出す
■28/42 掲示板を作る
- 281 掲示板を作る
- 282 掲示板の再表示で二重投稿されないようにする
- 283 掲示板の書き込みを新しいもの順に並べる
■29/42 カウンターを作る
- 284 簡単なカウンター
- 285 カウンターファイルが壊れるのを防ぐ
- 286 アクセスログを記録する
- 287 IPアドレスからアクセス元のホスト名を求める
■30/42 エンコード・デコード
- 288 URLエンコードする
- 289 BASE64エンコードする
- 290 gzip形式に圧縮する
■31/42 Cookie
- 291 Cookieとは
- 292 Cookie情報を書き込む
- 293 Cookie情報を読み込む
- 294 Cookie情報を削除する
- 295 複数のCookie情報を書き込む
- 296 Cookieの期限を1週間にする
■32/42 モジュール
- 297 モジュールを作ってみる
- 298 モジュール名を省略可能にする
- 299 要求されたもののみエクスポートする
- 300 エクスポートするシンボルをグルーピングする
■33/42 クラス
- 301 クラスとは
- 302 クラス定義の例
- 303 コンストラクタ(生成関数)を呼び出す
- 304 デストラクタ(消滅関数)を呼び出す
- 305 アトリビュート(メンバ変数)を使用する
- 306 メソッド(メンバ関数)を定義する
- 307 クラス変数を定義する
- 308 クラスを継承する
- 309 メソッドをオーバーライドする
- 310 多重継承を実現する
■34/42 Windows特有機能
- 311 Windowsのバージョンを調べる
- 312 ドメイン名,ノード名,ログイン名を調べる
- 313 Win32のメッセージボックスを呼び出す
- 314 ファイルの更新を監視する
- 315 Windowsのレジストリを読み出す
- 316 Perlで音を鳴らす
■35/42 Perl/Tk
- 317 Perl/Tkでウィンドウアプリケーションを作成する
- 318 Perl/Tkでいろいろな部品を用いる
- 319 部品の位置を制御する
- 320 Perl/Tkでメニューを作成する
- 321 ラベル文字を動的に変更する
- 322 Perl/Tkを用いた簡易電卓
■36/42 簡単なツールやゲーム
- 323 簡易電卓(dentaku)
- 324 かけ算ゲーム(kakezan)
- 325 数当てゲーム(kazuate)
- 326 検索コマンド(mygrep)
- 327 ファイル内容表示コマンド(mycat)
- 328 ワードカウント(mywc)
- 329 コマンドの場所を調べる(mywhich)
■37/42 セキュリティ
- 330 パスワードファイルを作成する
- 331 パスワードファイルのエントリを削除する
- 332 パスワードをチェックする
- 333 クロスサイトスクリプティングに対応する
■38/42 デバック
- 334 文法ミスをチェックする
- 335 CGIを大胆に文法チェックする
- 336 ワーニングメッセージを出力する
- 337 ファイル名と行番号付きでデバッグ文を表示する
- 338 標準エラー出力をファイルに書き込む
- 339 堅実なコードを書く
- 340 Perlをデバッグモードで起動する
- 341 変数の参照時,設定時の動作を制御する
■39/42 その他
- 342 Perl4とPerl5の差異
- 343 OSがWindowsかUNIXかを判断する
- 344 flockがサポートされているか調べる
■40/42 Perlを使う準備をする
- 345 Perlのパス名を調べる
- 346 UNIX系OSにPerlをインストールする
- 348 WindowsにPerlをインストールする
- 347 Mac OSにPerlをインストールする
- 349 モジュールをインストールする(CPAN)
- 350 モジュールをインストールする(ppm)
■41/42 付録1
- 351 演算子
■42/42 付録2
- 352 Perlのコマンドオプション
- 353 型のいろいろ
- 354 予約済みファイルハンドル
- 355 特殊変数
- 356 特殊トークン
- 357 特殊変数($...)
- 358 正規表現一覧
- 359 ワイルドカードの書式
- 360 マッチングのオプション
- 361 printfのフォーマット一覧
- 362 エスケープシーケンス一覧
- 363 クォート演算子一覧
- 364 CGIで参照可能な環境変数一覧
- 365 主なシグナル一覧
- 366 ASCllコード一覧