[ ホーム | Perlで学ぶCGI入門 | ダウンロード | 質問と回答 | 誤りと訂正 | 読者の声 ]
[ 著書 | メール | フィードバック ]

『Perlで作るCGI入門 基礎編』
誤りと訂正

結城浩

はじめに

このページでは、『Perlで作るCGI入門 基礎編』の誤りと訂正を公開します。

ぜひ、感想をお送りください

あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。

あなたの名前: メール:
学年・職業など: 年齢: 男性女性
(上の情報は、いずれも未記入でかまいません)

お手数ですが、以下の問いに答えてから送信してください(迷惑書き込み防止のため)。
今年は西暦何年ですか?

何かの理由でうまく送れない場合にはメールhyuki at hyuki dot comあてにお願いします。

第2章 (p.32) ASCIIモードとBINARYモード

旧:ASCIIモード
  ↓
新:ASCIIモード(TEXTモード)

旧:BINARYモード
  ↓
新:BINARYモード(IMAGEモード、RAW DATAモード)

(3刷で修正)

第3章 (p.64) &lock_file と &unlock_file

第1刷、第2刷の lock_file と unlock_file はOSによっては
正常に動作しない場合があるようです(常にロック失敗になる)。
以下のサブルーチンで置き換えてみてください。

# ロック
sub lock_file {
    local(*FILE) = @_;
    if ($uselock) {
        eval("flock(FILE, 2)"); # 2=LOCK_EX
        if ($@) {
            # flock が使えない場合、ここに来る。
            return 0;
        }
    }
    return 1;
}

# アンロック
sub unlock_file {
    local(*FILE) = @_;
    if ($uselock) {
        eval("flock(FILE, 8)"); # 8=LOCK_UN
    }
}

(3刷で修正)

第3章 (p.75) else if

プログラム例中の else if は elsif の誤りです。

(5刷で修正予定)

第5章 (p.139) ラジオボタン

SELECTED は CHECKED の誤り。

(読者からの指摘のメールによる)
(2刷で修正)

第8章 (p.262) 検索ロボットに注意

自分のホームページのディレクトリに robots.txt というファイルを置いておけば
自分のページを掲載されないようにすることができるというのは不正確な表現である。
ロボットを制御するためには、
robots.txt をそのサイトの仮想パスのルートに置かなければならないため、
サイトの管理者でなければ設定ができない。
詳しくはロボットのページを参照。

(2刷で修正)

第6章 (p.196) bbs.txt の属性

-rwxr-xr-x は誤り。
-rw-rw-rw- が正しい。

(4刷で修正)

第7章 (p.218) NOFRAMESの位置

<NOFRAMES>を <FRAMESET>の外側に置いているが、
<NOFRAMES>は <FRAMESET>の内部に置くべき。

(4刷で修正)

付録E (p.312) 最後の行

  誤: $lines[@#lines]に最後の行が入る。
  正: $lines[$#lines]に最後の行が入る。

付録F (p.320) 文字の修飾

<FONT SIZE=+3>
↓
<FONT SIZE="+3">

(3刷で修正)

付録F (p.325) いろいろな区切り

段落の区切り(改行2回分)
P (パラグラフ)は Paragraph (段落)の略。

例:
    最初の段落<P>次の段落

↓

段落を表す。
P (パラグラフ)は Paragraph (段落)の略。

例:
    <P>最初の段落</P><P>次の段落</P>

(3刷で修正)

付録F (p.333) フレーム

<NOFRAMES>を <FRAMESET>の外側に置いているが、
<NOFRAMES>は <FRAMESET>の内部に置くべき。

<HTML>
  <HEAD>
    <TITLE>タイトル</TITLE>
  </HEAD>
  <FRAMESET ...>
    ...ここに<FRAME>を書く...
    <NOFRAMES>
      ...ここにフレームに対応していないブラウザ向けの内容を書く...
    </NOFRAMES>
  </FRAMESET>
</HTML>

(3刷で修正)

付録I (p.346) Content-type: 行が抜けている

付録I:「IISで実行する場合の注意」の中の
「方法2:cmd= ではなく cgi= を利用」の部分に修正もれがある。

# 引数の数の確認
# if ($#ARGV < 0) {
#     print "Usage: counter.pl countername\n";
#     exit(0);
# }

print "Content-type: text/plain\n\n";

# カウンタ名
$countername = 'countday';

(2刷で修正)


hyuki@st.rim.or.jp
http://www.st.rim.or.jp/~hyuki/cgibook/
Copyright (C) 1997,1998,1999 by 結城浩
リンクはご自由に。フィードバックはお気軽に。