| 箇所 |
誤 |
正 |
| まえがき |
自分でCGIプログラミングを作って設置している人は
|
自分でCGIプログラムを作って設置している人は
|
| 1-1節リード文(10ページ) |
情報を得たりインタラクティブなホームページを実現できます
|
読者から情報を得られるインタラクティブなホームページを実現できます
|
| 1-4節(20ページ) |
C++のデメリット
|
C/C++のデメリット
|
| 2-3節(34ページ) |
ここで、ActivePerlの時と同じ注意点があります(30ページ参照)
|
ここで、ActivePerlの時と同じ注意点があります(29ページ参照)
|
| 2-3節(44ページ) |
この記述が間違っているCGIプログラムの起動は失敗します
|
この記述が間違っているとCGIプログラムの起動は失敗します
|
| 4-2節(74ページ) |
[List1] list1.cgi
|
[List1] list1.pl
|
| 4-3節(77ページ) |
また、実行したくないスクリプトも行頭に#を付けて書いておくと便利なこともあります。
|
また、実行したくないスクリプトも行頭に#を付けて書いておくと便利なこともあります。
|
| 4-9節(105ページ) |
変数の内容がある数値より大きいどうかチェックしたい
|
変数の内容がある数値より大きいかどうかチェックしたい
|
| 4-9節(117ページ) |
while文の以下の流れで繰り返し処理を行います
|
while文は以下の流れで繰り返し処理を行います
|
| 4-10節(131ページ) ※アンダースコア欠落 |
sub test func {
print "関数test funcが呼ばれました\n";
}
print "関数を呼び出します\n";
&test func();
test func();
test func;
&test func;
−−−−−−−−−−−−−−−−
関数を呼び出します
関数test funcが呼ばれました
関数test funcが呼ばれました
関数test funcが呼ばれました
関数test_funcが呼ばれました
|
sub test_func {
print "関数test_funcが呼ばれました\n";
}
print "関数を呼び出します\n";
&test_func();
test_func();
test_func;
&test_func;
−−−−−−−−−−−−−−−−
関数を呼び出します
関数test_funcが呼ばれました
関数test_funcが呼ばれました
関数test_funcが呼ばれました
関数test_funcが呼ばれました
|
| 4-10節(132ページ) ※アンダースコア欠落 |
sub show heisei {
local($year) = @ ;
$n = $year - 1988;
print "西暦 $year 年は平成 $n 年です\n";
}
&show heisei(2001);
&show_heisei(2002);
|
sub show_heisei {
local($year) = @_;
$n = $year - 1988;
print "西暦 $year 年は平成 $n 年です\n";
}
&show_heisei(2001);
&show_heisei(2002);
|
| 4-10節(133ページ) ※アンダースコア欠落 |
sub show heisei {
local($year) = @ ;
$n = $year - 1988;
return ($n);
}
$ret = &show heisei(2001);
print "西暦 2001 年は平成 $ret 年です\n";
$ret = &show heisei(2002);
print "西暦 2002 年は平成 $ret 年です\n";
|
sub show_heisei {
local($year) = @_;
$n = $year - 1988;
return ($n);
}
$ret = &show_heisei(2001);
print "西暦 2001 年は平成 $ret 年です\n";
$ret = &show_heisei(2002);
print "西暦 2002 年は平成 $ret 年です\n";
|
| 4-10節コラム(134〜135ページ) ※アンダースコア欠落 |
for ($i = 0 ; $i < 10 ; $i++) {
print "\$i = $i\n";
$ret = &power($i);
print "$ret\n";
}
sub power {
local($val) = @ ;
$i = $val * $val;
return ($i);
}
−−−−−−−−−−−−−−−−
for ($i = 0 ; $i < 10 ; $i++) {
print "\$i = $i\n";
$ret = &power($i);
print "$ret\n";
}
sub power {
local($val) = @ ;
my($i); ←追加
$i = $val * $val;
return ($i);
}
|
for ($i = 0 ; $i < 10 ; $i++) {
print "\$i = $i\n";
$ret = &power($i);
print "$ret\n";
}
sub power {
local($val) = @_;
$i = $val * $val;
return ($i);
}
−−−−−−−−−−−−−−−−
for ($i = 0 ; $i < 10 ; $i++) {
print "\$i = $i\n";
$ret = &power($i);
print "$ret\n";
}
sub power {
local($val) = @_;
my($i); ←追加
$i = $val * $val;
return ($i);
}
|
| 5-1節コラム(146ページ) |
また、<<の直後の終端文字列は必ず引用符で囲むということです。
|
また、<<の直後の終端文字列は必ず引用符で囲むということです。
|
| 5-2節(151,156ページ) |
<!--\exec cmd="./CGIプログラム名"-->
|
<!--#exec cmd="./CGIプログラム名"-->
|
| 5-2節(156ページ) |
<!--\exec cgi="./CGIプログラム名"-->
|
<!--#exec cgi="./CGIプログラム名"-->
|
| 5-3節(163ページ) ※アンダースコア欠落 |
#! /usr/local/bin/perl
$method = $ENV{'REQUEST METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY STRING'};
}
print "Content-type: text/html\n\n";
print "メソ\ッドは $method \n";
print "受け取ったデータは $buf\n";
|
#! /usr/local/bin/perl
$method = $ENV{'REQUEST_METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY_STRING'};
}
print "Content-type: text/html\n\n";
print "メソ\ッドは $method \n";
print "受け取ったデータは $buf\n";
|
| 5-3節(168ページ) |
丸括弧で囲ってあるので、この正規表現でマッチした文字列を
|
丸括弧で囲ってあるのは、この正規表現でマッチした文字列を
|
| 5-3節(169ページ) ※アンダースコア欠落 |
#! /usr/local/bin/perl
$method = $ENV{'REQUEST METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY STRING'};
}
|
#! /usr/local/bin/perl
$method = $ENV{'REQUEST_METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY_STRING'};
}
|
| 5-3節(171ページ) ※アンダースコア欠落 |
#! /usr/local/bin/perl
$method = $ENV{'REQUEST METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY STRING'};
}
$buf =~ tr/+/ /;
$buf =~ s/%([a-fA-F0-9][a-fA-F0-9])/
pack("C", hex($1))/eg;
print "Content-type: text/html\n\n";
print "メソッドは $method \n";
print "受け取ったデータは $buf \n";
|
#! /usr/local/bin/perl
$method = $ENV{'REQUEST_METHOD'};
if ($method eq 'POST') {
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
} elsif ($method eq 'GET') {
$buf = $ENV{'QUERY_STRING'};
}
$buf =~ tr/+/ /;
$buf =~ s/%([a-fA-F0-9][a-fA-F0-9])/
pack("C", hex($1))/eg;
print "Content-type: text/html\n\n";
print "メソッドは $method \n";
print "受け取ったデータは $buf \n";
|
| 6-4節(193ページ) |
ノンブロックロック(ロックに失敗したても待たない)
|
ノンブロックロック(ロックに失敗しても待たない)
|
| 6-4節(198ページ) |
→
|
※List6のプログラムを動作させるには,「count.txt」というファイルをあらかじめ同じディレクトリに置いておく必要があります。count.txtの内容は空でOKです。
|
| 6-5節(206ページ) |
次に来た人がロックが取得できないという
|
次に来た人がロックを取得できないという
|
| 8-1節(291ページ) |
$ARGV[n] 第(n-1)引数の内容
|
$ARGV[n] 第(n+1)引数の内容
|
| 8-3節(313ページ) |
以下にブロックの詳細を示します。拡張導入符は・・・
|
以下にブロックの詳細を示します。拡張導入符は・・・
|
| 8-3節(325ページ) |
$counts{'1'} = 'foo';
$counts{'3'} = 'bar';
$counts{'2'} = 'zot';
|
$counts{'1'} = 'foo';
$counts{'3'} = 'bar';
$counts{'2'} = 'zot';
|