Hatena::ブログ(Diary)

サンプルコードによるPerl入門 このページをアンテナに追加 RSSフィード

  サンプルコード中心のPerlの入門サイトです。現代的なPerl(v5.8.1以降)の書き方に準拠しています。モダンPerlを効率よく体系的に学習することができます。社内での勉強会や講習のテキストとしてもお使いください。またPerlの初学者の方にもぜひ教えてあげてください。Perlは実用的、高速で、業務を大幅に効率化できる、とても優れたプログラミング言語です。ぜひお役立てください。

2009-11-23

かんたんプログラミング CGI/Perl 正誤表

 「かんたんプログラミング CGI/Perl」の正誤表を作成しました。自分で発見したものと教えてもらったものについて記載してあります。結構間違いがありました。すいません。サンプルコードについてはほぼ間違いがなく動くと思います。

http://www.amazon.co.jp/gp/product/4774139289

2010年5月13日更新分
ページ場所
P108上から14行目論理和(何々 かつ 何々)論理和(何々 または 何々)
P111上から7行目1番目の要素に「0」が1番目の要素に「1」が
P111下から3行目$num[0] $num[1]$nums[0] $nums[1]
2010年2月20日更新分
ページ場所
P114下段「$animal」が「cat」の場合には「$animal」が「dog」の場合には
P123上段samplw_3_8.plsample_3_8.pl
P145上段close $fhclose $fh;
P174上段/var/www/htm/var/www/html
P207上段ソースコード名がないimage-bbs.cgi
P85上段ソースコードのif分に閉じブレースがない閉じブレースを追加

2009年12月5日更新分
ページ場所
P86下段配列の要素の1番目から2つの要素を取り出す例です。配列の要素の2番目(添え字で1)から2つの要素を取り出す例です。
P87上段配列の要素の1番目の位置から2つの要素を置換する例です。配列の要素の2番目(添え字で1)から2つの要素を置換する例です。
P162中段titleタグの閉じタグのスラッシュ(/)がないです。スラッシュがあるのが正しいです。
P164中段titleタグの閉じタグのスラッシュ(/)がないです。スラッシュがあるのが正しいです。
P165中段titleタグの閉じタグのスラッシュ(/)がないです。スラッシュがあるのが正しいです。
P167中段titleタグの閉じタグのスラッシュ(/)がないです。スラッシュがあるのが正しいです。
P170中段titleタグの閉じタグのスラッシュ(/)がないです。スラッシュがあるのが正しいです。
P089下段joinの解説を行っていないのにjoinを使用しています。3章5節 「数値演算と文字列操作」で解説されています。
P173中段フォームのactionのURLの指定が間違っています。/cgi-bin/simple-form.cgiが正しいです。
P075上段意味がわかる名前にましょう。意味がわかる名前にしましょう。
P091下段国際標準後国際標準語
P105下段>ll というゴミが残っています。取り除くのが正しいです。
P157中段windwos perl nmakewindows perl nmake

初回更新分
ページ場所
P062上段画面に表示するする画面に表示する
P079下段l<という変な記号があります削除しわすれています
P158中段完結な内容にしましょう簡潔な内容にしましょう
P232上段「出力するデータは必ず〜」の見出しが中見出し小見出しになっているのが正しいです
P089下段ソースコードの最後に「print $animal_join;」が抜けていますprint $animal_join;を追加
P018下段Accept-Charsetの解説でUTF-8がutf-8になってますUTF-8が正しいです
P024中段「POSTメソッドで送信されたメッセージボディのデータが〜」が重複して記入されています重複を取り除く
P031上段デフォルトでは「I Accept …」にチェックが入っています。デフォルトでは「I Accespt …」にチェックが入っていません
P034上段Webアプリケーションは「HTML」「HTTP」「CGI」「Perl」の4つの要素で構成されており、それぞれの知識が必要不可欠です。Webアプリケーションは複数の技術で構成されており、「HTML」「HTTP」「CGI」「Perl」について学習する必要があります。
P034中段HTTPをCGIスクリプトのように書くことはありませんが、記述されている情報をスクリプト内で利用することができます。HTTPリクエストのヘッダ情報はCGIスクリプト内で利用することができます。
P034下段WebサーバからCGIスクリプトへデータを渡す方法を「標準入力」、CGIスクリプトからWebサーバへデータを渡す方法を「標準出力」といいます。WebサーバからCGIスクリプトへデータを渡すには「標準入力」を利用し、CGIスクリプトからWebサーバへデータを渡すには「標準出力」を利用します。
P059中段「8.Perlの実行パスの記述が間違っている」の位置が異なるP056の「7.CGIスクリプトのパーミッション」の直後の位置が正しいです
P064中段Unixの拡張したOSやLinux系のOSを含みますUnixを拡張したOSやLinux系のOSを含みます
P074上段不等号とは異なり「=」に「等しい」という意味はありません。数学の等号記号とは異なり「=」に「等しい」という意味はありません。
P083中段「配列の要素に添え字を使ってアクセスすることができます。〜」の位置が間違っています。中見出しの「配列の要素」の直後が正しいです。
P084中段このように配列変数をスカラ変数に代入することを、スカラコンテキストといいます解説が間違っているので、この文は削除するのが正しいです。
P086中段中見出し「配列に配列を追加する」「配列に複数の要素を追加する」が正しいです
P086中段ひとつの要素だけでなく、配列の追加にも対応していますひとつの要素だけでなく、複数の要素の追加にも対応しています
P087中段ソースコード @nums = reverse sort {$b <=> $a} @numsreverseはいらないです。@nums = sort {$b <=> $a} @nums が正しいです。
P088中段ソースコード ($name, $age) = ('Ken', 'Taro')($name, $age) = ('Ken', 18) が正しいです
P089中段ソースコード 18行目 my $last_animals = pos;my $last_animals = pop @animals が正しいです
P102上段その位置が何文字目から始まっているのかを返却します戻り値としてその位置を返却します
P110下段スクリプトの実行方法抜けています引数を指定してスクリプトを実行してみましょう。perl sample_3_6 1 2 を追加するのが正しいです
P148上段少し進んだ話題ですが、ぜひ知っておいたほうがよい少し進んだ話題ですが、ぜひ知っておいたほうがよいことがあります。
P158上段PerlスクリプトはWebブラウザからではなく、コマンドプロンプトかシェルからスクリプトの存在するディレクトリを指定し、Perlコマンドから実行しますPerlスクリプトはコマンドプロンプトやシェルなどからperlコマンドを使って実行します
P158上段変数とは値を納めることができる仕組みのことです。プログラムが終了するまで値を維持でき、繰り返し利用することができます。「変数には値を代入することができます。」に修正するのが正しいです。変数はプログラムが終了するまで値を維持しているわけではないので。
P176下段受け取った文字列を出力されました。受け取った文字列が出力されました。
P234上段実行したプログラムの役割を果たすモジュールがないかを〜実行したいプログラムの役割を果たすモジュールがないかを〜
P235下段ソースコード ? の部分にtaraを埋め込む「? の部分にtaroを埋め込む」が正しいです。

yokotayokota 2009/12/18 15:12 理解しやすい、いい内容でした

以下の項目誤りだと思いますが

P197 下から9行目 </html>の位置がおかしいのでは?
P216 下から17行目 <div> -> </dive>
P229 上から9行目 key1=>value2 -> key1 => value1 では?

perlcodesampleperlcodesample 2009/12/26 16:40 ありがとうございます。返事が遅れました。
間違っている部分の記述に追加しておきます。

loveone6loveone6 2010/02/06 03:36 p85の一番上のサンプルコードですが、if文を閉じる波括弧が抜けているかと思います。
ちなみに、誤表記が訂正された版の出版の予定はありますか?

perlcodesampleperlcodesample 2010/02/07 19:07 >loveone6さん
誤植の報告ありがとうございます。まだ訂正された番の出版予定の話は聞いてないので今のところはないです。もしそのような予定があったらしっかり直したいと思います。

karankaran 2010/04/03 11:48 Macで3/06条件分岐まで学習しました。Macのターミナルモード使い易いです。
このページで誤記を訂正しましたが、それ以外の誤記を見つけました。

P108 上から14行目 論理和(何々 かつ 何々)=> 論理和(何々 または 何々)
P111 上から7行目 1番目の要素に「0」が => 1番目の要素に「1」が
P111 下から3行目 $num[0] $num[1] => $nums[0] $nums[1]

ではないでしょうか?

perlcodesampleperlcodesample 2010/04/17 21:54 > karanさん

お返事がおくれてしまいました。ありがとうございます。
正誤表に追加しておきます。

takenakatakenaka 2010/06/18 20:34 P110 サンプルスクリプト「sample_3_6.pl」

line 6 @nums != 2 ){ => @nums == 2 ){
line 10 $num[1] == 2 => $nums[1] == 2

ではないのでしょうか?

perlcodesampleperlcodesample 2010/06/19 22:03 takenakaさん

ありがとうございます。正誤表に加えておきます。
まちがいが多くてほんとうにごめんなさい。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証