CGIPerl 究極のレシピ350

[表紙]CGI&Perl 究極のレシピ350

紙版発売

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コード一覧