何があるかとりあえず知りたいのなら、 オフラインインストール用のアーカイブディレクトリ http://www.ActiveState.com/packages/zips/ を見るとよいでしょう。
|
|
|
|
| P.3/上から5行目 | つくることこができます。 | つくることができます。 |
| P.20/上から2行目 | ×[Win32] | |
| P.20/上から3行目 | ×[Mac] | |
| P.20/上から2行目 | ×[4] | |
| P.20/上から13行目 | 『プログラミング Perl』(アスキー出版) | 『Perl プログラミング』(ソフトバンク) |
| P.20/上から13-14 | 『Perl プログラミング (改訂版)』(オライリージャパン発行) | 『プログラミング Perl (改訂版)』(オライリー・ジャパン発行) |
| P.22/P.23/P.25
【2000/4/5追加】 <大串 敏史さんに感謝> |
<TITLE>CGIの起動サンプル(<xxxxx>タグ)</TITLE> | <TITLE>CGIの起動サンプル(<xxxxx>タグ)</TITLE> |
| P.28
【2000/4/5追加】 <大串 敏史さんに感謝> |
(誤植ではないのですが、改行コードの変換はMacに対応していません。) | $val =~ s/\r\n/\n/g; # Win
$val =~ s/\r/\n/g; # Mac |
| #P.29/下から3行目 | ulti.pl | util.pl
docs/basic/hash.html |
| P.44
【2000/4/5追加】 <大串 敏史さんに感謝> |
flock()が利用しない(できない) | flock()を利用しない(できない) |
| P.46/lock.cgiの真ん中あたり | closeUnlock(FH); | closeUnlock(FH,$file); |
| P.56
【2000/4/5追加】 <大串 敏史さんに感謝> |
サンプルプログラム
getenv.cgi |
サンプルプログラム
browserinfo.cgi ★内容はCD-ROM内のサンプルを参照してください。 |
| P65 中頃 | PrintableはQ、BASE64はB)をセットします。<エンコードした>には | PrintableはQ、BASE64はBをセットします。<エンコードした文字列>には |
| P66 中頃
【2000/1/6追加】 |
$year += 1900; | $year += 1900;
$mon += 1; |
| P.67/ssi_count.cgiの下から7行目 | $count++;
print CNT $count; |
$count++;
print "Content-type: text/plain\n\n"; # 追加する文 print CNT $count; |
| P.70/img_count.cgiの上から4行目
【2000/6/19追加】 |
$count++ if ($col ==1);
print CNT $count; |
$count++;
if ($col ==1) { print CNT $count; } |
| P.80
【2001/7/28追加】 |
(y + y/4 - y/1000 + y/400 + (13*m + 8)/ +d) % 7 | (y + y/4 - y/1000 + y/400 + (13*m + 8)/5 +d) % 7 |
| P.88 中頃
【2000/4/24追加】 <倉光 健司さんに感謝> |
($array[0],$array[1],$array[1]) | ($array[0],$array[1],$array[2]) |
| P183 | (真っ白になっている版がありますが、落丁ではありません。) | |
| P186 TIPS(下から8〜9行目) 【2002/1/9追加】 |
単項演算子であるgetnetbynameより||演算子の優先順位のほうが高い | 代入演算子=より||演算子の優先順位のほうが高い |
| P186 TIPS(下から2〜3行目) | いちいち覚えるのが大変だという場合は()を付ければ、「関数呼び出しのようにに見えるものは云々」 | いちいち覚えるのが大変だという場合は()を付ければ、「関数呼び出しのように見えるものは云々」 |
| P189 【2002/1/9追加】 |
右オペランドの値分複製されたリストが演算の結果として返されます。 | 右オペランドの値分複製された文字列が演算の結果として返されます。 |
| P212 | -R :ファイルやディレクトリが実効 uid/gid で読み出し可
-W :ファイルやディレクトリが実効 uid/gid で書き込み可 -X :ファイルやディレクトリが実効 uid/gid で実行可 -O :ファイルやディレクトリが実効 uid の所有である |
-R :ファイルやディレクトリが実 uid/gid で読み出し可
-W :ファイルやディレクトリが実 uid/gid で書き込み可 -X :ファイルやディレクトリが実 uid/gid で実行可 -O :ファイルやディレクトリが実 uid の所有である |
| P224
gmtime 【2000/4/3追加】 <大串 敏史さんに感謝> |
秒、分、時、日、つき、年、曜日、夏時間調整の有無を表す数値データ。
|
秒、分、時、日、つき、年、曜日、年初からの日数、夏時間調整の有無を表す数値データ。
単位 数値の範囲
|
| P225
localtime 【2000/4/3追加】 <大串 敏史さんに感謝> |
秒、分、時、日、つき、年、曜日、夏時間調整の有無を表す数値データ。
|
秒、分、時、日、つき、年、曜日、年初からの日数、夏時間調整の有無を表す数値データ。
単位 数値の範囲
|
| P233 TIPS | packはプラットフォーム間での互換性はあまりありませんが、Cの構造体などのバイナリデータの形でデータを格納したり、 受け渡したりする用途に用いることもできます。 | 間違いではありませんが、句読点が抜けてしまって、packにプラットフォーム間での互換性がないように読みとれるので、以下に変更。
プラットフォーム間での互換性はあまりありませんが、Cの構造体などのバイナリデータの形でデータを格納したり、 受け渡したりする用途にpackを用いることもできます。 |
| P260
ハッシュの値(数値)によって昇順にソートする(の5行目) 【2000/6/19追加】 <清瀧 威史 さんに感謝> |
foreach $key (sort { $hash{$a} <=> $hash{$b} keys %hash) { | foreach $key (sort { $hash{$a} <=> $hash{$b} } keys %hash) { |
| P267
each 【2000/7/17追加】 |
each関数で繰り返し処理を行っているときにdelete関数で要素を削除しても構いませんが、要素を追加してはなりません。 | each関数で繰り返し処理を行っているときに要素を追加したり、削除したりしてはなりません。 |
| P416
use/no 【2000/9/7追加】 <もた さんに感謝> |
<文法/書式>
☆:[スカラ]ファイル名(クォートされた文字列)、モジュール名(識別子)、・・ <機能説明> 引数☆が文字列の場合、それをPerlコードを含むファイル名とみなし、読み込んで実行します。 |
<文法/書式>
☆:[スカラ]モジュール名(識別子)、・・ <機能説明>
|
| P431 【2002/1/9追加】 |
ファイルの行末区切り文字を015(0x0D)から012(0x0A)に変換します。
perl -l12 -015 -pi.bak -e '' hoge.pl |
ファイルの行末区切り文字を012(0x0A)に変換します。
perl -l12 -pi.bak -e '' hoge.pl |
unix/docs/Basic
unix/docs/Useful
sub writeData {
openLock(FH, ">$datafile")
or exitError("ファイル $datafile がオープンできません。");
openLock(FH, ">$datafile")
or exitError("ファイル $datafile がオープンできません。");
- /index.html
navigator.platform は Netscape のみで有効のため、platform の判断ミスが生じます。【誤】
navigator.userAgent で判断するように変更が必要です。ua = navigator.platform;【正】ua = navigator.userAgent;なお、PPC では MacPPC が返されます。
【対策】
上記の違いは、util.plを使用しているかどうかによるものと考えられます。
util.plは内部でjcode.plを呼び出していますので、配列変数@INC内のディレクトリにjcode.plが置かれている必要があります。jcode.plの有無を確認してみてください。
@INCの内容は
<魚住正憲さんに感謝>
【対策】
P.46のlock.cgiの真ん中あたりにある下記の文を修正してください。
[記述] closeUnlock(FH); [変更] closeUnlock(FH,$file);
●P66:日付と時刻の表示で、月が正しく表示されない [2000/1/6追加]
ご注意)この修正版は、修正版(V1.0)fup_cgi_perl.zipには含まれておりません。お手数ですが、当面手修正をお願い致します。
●P.67:(SSIを利用する)アクセスカウンタがうまく動かない
【症状】
ssi_count.shtmlとssi_count.cgiと使ったアクセスカウンタを動かすと Internal
Server Errorになり、アクセス数が表示されない。 また、エラーログファイル(error_log)等
に「malformed header from script. Bad header=xx:ssi_count.cgi」 というエラーメッセージが出力される。
<早川さんに感謝>
【対策】 下記の1.か2.のどちらかを行って下さい。
1.ssi_count.cgiの下から7行目の部分に以下の記述を追加する。
$count++; print "Content-type: text/plain\n\n"; # 追加する文 print CNT $count; 2.ssi_count.shtmlの#exec cgiの代わりに#exec cmdを使う(あまりお奨めしません)。
[記述] <!--#exec cgi="/cgi/bin/ssi_count.cgi"--> [変更] <!--#exec cmd="/cgi/bin/ssi_count.cgi"--> あるいは <!--#exec cmd="perl /cgi/bin/ssi_count.cgi"-->
●P.69:「<IMG>タグを使って画像のアクセスカウンタにする」で、桁上がりの際の表示が適切に行われない問題について【2000.6.19追加】
−桁上がりの時、妙な値を表示する。 例) 098→099→000→101 118→119→100→121
等。<浦野京子さんに感謝>
【対策】
[記述]
[変更]
●P.76: 会員認証の不具合について【2000.12.5追加】
ユーザIDだけを入力すると、入力したIDとは異なるIDが登録される。
<乱真澄さんに感謝>
●P78:WindwosでCGI_Liteモジュールを使ったアップロードがうまくいかない問題について
【症状】
−下記のエラーメッセージが出る。
Oh, Oh! I'm upset! Can't read what I want. −ファイルは転送されているが、サイズの大きいWORD文書や画像ファイル(jpeg/GIF)は 内容が壊れる。<小澤 仁さんに感謝>
【対策】
http://www.harukaze.net/~mishima/perl/win/iis.html#Q11
を参照してください。
●P80:スケジュール表 (1)
【症状】 スケジュール表に書き込む時に、エラーが発生し書き込めない。
−下記のエラーメッセージが出る。(PWS での例)
CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate jcode.pl in @INC (@INC contains: ./lib C:\PERL\lib C:\PERL\site\lib .) at C:\caoru\Proj\Gihyo\CGI_Perl\win\cgi-bin\schedule.cgi line 28.
<松尾和浩さんに感謝> 【対策】1.記述の追加
# -----------------------8<---------------------------
sub writeData {
# -----------------------8<---------------------------
2.ディレクトリの追加
ご注意)fup_cgi_perl.zip内のschedule.cgiは、mkpath()でディレクトリを自動作成するように修正してありますが、下記(2)以降の対策がうたれていません。schedule.cgi修正版(2000.8.9) schedule_000809.zipは、(1)(2)(3)(4)(6)とも修正してありますので、合せてダウンロードしてご利用ください。
【原因】
常に新規オープンしてしまい、それまでのデータを破棄していました。
<Nobuyoshi Imaiさんに感謝>
【対策】
直前でコメントアウトしてある
openLock(FH, ">$datafile")
or exitError("ファイル $datafile がオープンできません。");
のコメントをはずしてください。
openLock(FH, ">$datafile")
or exitError("ファイル $datafile がオープンできません。");
【原因】
【対策】
for ($d=1, $i=0; ; $i++) {
last if ($i%7 == 0 && $i > $days);
print qq(<TR ALIGN="center" VALIGN="center">\n) if ($i%7
== 0);
を
for ($d=1, $i=0; ; $i++) {
last if ($i%7 == 0 && $d > $days);
print qq(<TR ALIGN="center" VALIGN="center">\n) if ($i%7
== 0);
に修正してください。
The requested URL /cgi-bin/randImage.cgi was not found on this server.
<山田 健さんに感謝>
【原因】
rand_img.html内のリンクではファイル名がrandImage.cgiと記述されていますが、実際のスクリプトファイルはrandimage.cgiとなっています。そのため、大文字と小文字を識別するシステム&WWWサーバではrandIimage.cgiがないとみなされエラーとなります。
【対策】
rand_img.htmlファイルの44行目の
お問い合わせ等は mishima@att.or.jp あるいはcaoru@ma.neweb.ne.jpにE-Mailでお寄せ下さい。