Writing CGI Applications with Perl

Main
About the Book
Table of Contents
Foreword
Preface
Source Code
Sample Chapters
About The Authors
Errata (typos, etc..)

Contact the Authors
Kevin
Brent

Cover Small
Writing CGI Applications with Perl - Errata

Mistakes happen! There are bound to be typos and misprints in the first printing of any book. You can come here to see what typos have been found in this book. If you find any, please contact Kevin so we can make sure that there aren't any in future printings. How do these things get into a book? Well, some slide by the eyes of reviewers, editors, and the authors. Others are meant to be fixed before going to press, but somehow don't make it from the authors edited manuscript to the final copy.

Chapter 1
Page(s)It is...It should be...
36 <H2><CENTER>Hello World</H2></CENTER> <CENTER><H2>Hello World</H2></CENTER>

Chapter 2
Page(s)It is...It should be...
21 Listing 2-5 second entry in table This is okay, since it is a read-only open (as far as tainting is concerned). However, as a security caution, $foo should be inspected as to not contain special characters, like |, which could do unwanted things.
42 Listing 2-19 line 06: ... missing semi-colon at end of line.
42 In the header shown in Listing 10-18 In the header shown in Listing 2-18

Chapter 3
Page(s)It is...It should be...
47 Listing 3-1 line 09: <CENETR> <CENTER>
57 Listing 3-7 line 11: print "-" x 25 "\n"; print "-" x 25 . "\n";
58 & 67 Listing 3-10 line 04: use POSIX: use POSIX;
67 Listing 3-10 line 17: ..., $time)); ..., '$time'));

Chapter 4
Page(s) It is... It should be...
70 6th Par: or if you are writing CGI that... or if you are writing CGI scripts that...
70 6th Par: the name of the form that was submitted. "name" should be italicized
70 8th Par: application/x-www-form-urlencoded should be italicized
70 8th Par: multipart/form-data should be italicized
70 8th Par: binary data, and it is required for file uploads. binary data, and is required for scripts that accept file uploads.
71 1st Par: POST method, so the data will be sent via STDIN rather than on the URL. POST method.
72 2nd Par: Different browsers handle spaces differently according to the specification documents. There should be no spaces in a URL. Different browsers handle spaces differently. According to the specification documents, there should...
73 3rd Par: your forms but to also... your forms and to also...
77 4th Par: the user cannot unselect it. the user cannot unselect it unless the form has a reset button.
78 2nd Par: input field cannot have... cannot should be bold and itallics
78 2nd Par: Chapter 8 covers... Chapter 7 covers...
84 Last Par: back in Chapter 4... back in Chapter 3...
91 (Line 11) was returned. was returned from the header function.
93 Lines 3 Line 3
99 Last Par: if not $reviewed... if not $review

Chapter 5
Page(s) It is... It should be...
105 1st Par: are not Mrs. Field's... are not the Mrs. Field's...
106 2nd Par: sites to view the... sites from viewing the...
109 4th Par: cookie that is... cookie which is...
111 1st Par: again with the CGI.pm... again with CGI.pm...
113 lines 8 & 10 remove the extra spaces before the );
114 last line. The cookie() function... The cookie() function can return a hash, array, or scalar depending on the context in which it is used.
115 2nd Par: uses the next() function... uses the next command...
115 5th? Par: key of $_ (the... key of $_, (the current value from the foreach), and sets...
116 Line 23: else block that is used to see if the $Flag variable has been set. else block that is used to see if the $Flag variable contains a true value.

Chapter 7
Page(s) It is... It should be...
143 2nd Par: uploading allows you to... uploading allows users to...
145 1st Par: This looks pretty much like... The <FORM> looks pretty much like...
150 2nd Par: $mime $Mime
154 3rd Par: for example, if it... for example, it...
155 last Par: The prepare stores... prepare should be italacized.
160 Line 11 descr: of data or one filename... of data which consists of a filename...
162 lines 30-36 descr: HTML and starting a table. HTML and start a table.
164 1st Par: be built on to make... be built upon to make...
165 5th Par: called @File_Name and... called @File_Names and...
165 5th Par: in the filename fields... in the file_name fields...
165 7th Par: called @Description and... called @Descriptions and...
166 Line 21 descr: in the @File_Name array... in the @File_Names array...
166 NIT extra spacing on lines 23,24,25,26&27 which could be eliminated.
167 3rd Par: of the $Description array... of the @Descriptions array...
167 end of page: the Store_Description() ... the Store_Descriptions...
171 Line 78 descr: value into the $temp_hash variable... value into the $temp variable...
173 top of page: program from Chapter 11. program from Chapter 10.

Chapter 10
Page(s)It is...It should be...
235 Line 29: ... $server ... $server, (the comma is missing)
261 There are various typos/misprints in listing 10-5 Get revised listing

Chapter 11
Page(s) It is... It should be...
268 In products table There are 2 mfg_pn entries, there should only be one.
272 Line 05: DBI->connct(" DBI->connect("
273 Top: containing a SQL statement. containing an SQL statement.
280 Middle: with fetchrow_hashref() favorite... with fetchrow_hashref() as my favorite...
285 Top: using the fetch method. The fetch method... using the fetch() method. The fetch() method..... (also fetch() should be italicized)

Chapter 12
Page(s)It is...It should be...
316 1st Par: things can get pretty complex. things can get pretty involved.
318 Line 12 descr: $self->EXISTS($key)() method... $self->EXISTS($key) method...
318 Line 13 descr: param('action')() function... param('action) function...
318 Line 16 descr: $self->DELETE($key)() method... $self->DELETE($key) method...
320 Line 39 descr: my variables. my variables and sets them to the values that were passed to this function.
321 Line 50 descr: $session my() $session my
322 2nd line: to the date returned... to the data returned...
324 Line 89 descr: shifts it from @_. (to end of line) shifts the second value passed to the function into it.
ShopCart.pm Line 91: next if($key eq $self->{FIRSTKEY}); $self->NEXTKEY if($key eq $self->{FIRSTKEY});

Chapter 13
Page(s)It is...It should be...
343 2nd Par: however, only call it... however, call it...
344 2nd Par: or $first_name=>foobar to... or $first_name=>'foobar' to...
347 3rd Par: If you put something... And if you put something...
352 1st line... and beings an... and begins an...
353 Line 42 descr: in the array @{rss->{'items'}. in the array @{rss->{'items'}}.
354 Last Par: value is given error is... value is given, and error is...

Chapter 14
Page(s)It is...It should be...
372 directory structure example should be cgi-bin/dms/data/etc... (dms was left out)
373 last Par: see if $valid contains any data. see if $valid is true.
387 Last line: move $ptr-> so that $ptr->{file_id}); is all on the same line...
392 First line: but no else. else should be in itallics
399 toward bottom of page: the last function will... the last command will...
402 Last Par: informing the use of the... informing the user of the...
404 Lines 29-44 Lines 39-44

Copyright ©2001, Kevin Meltzer & Brent Michalski. Web hosting graciously provided by OWLS.