Errata

Advanced Perl Programming

Errata for Advanced Perl Programming, Second Edition

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page vi
headings under Chapter 5

The entry for "Categorization and Extraction" has an extra leading space.

Anonymous   
Printed
Page 3
Figure 1-2

the label for 'a should be *a

Anonymous   
Printed
Page 9
2nd paragraph in the "Closures" sidebar

...(it'll give you an error under use strict.
should read
...(it'll give you an error under use strict).

Anonymous   
Printed
Page 11
very bottom of page

In the last line on the page, "conceivable" is misspelled "concievable".

Anonymous   
Printed
Page 17,18
Figures 1-5, 1-6

In both figures 1-5 and 1-6, "readline" is misspelled "redline".

Anonymous   
Printed
Page 20
1st paragraph of section "Messing with the Class Model"

The paragraph suggests that @INC package variable is used to handle inheritance.
This should be the @ISA package variable.

Anonymous   
Printed
Page 82
1st code example on page

the line of "===" signs
is mis-aligned. Remove all the thinspaces between "=". It should read
like the following (viewed in constant-width), with each header ("ID",
"Received", "From", "Subject") aligned with the start of a sequence of
"===..." below it:

format STDOUT_TOP =
ID Received From Subject
===== ========== ======================================== ====================
.

format STDOUT =
@<<<< @<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<
$_->id $_->received $_->from_address $_->subject

Anonymous   
Printed
Page 97
second line of text

"... the Headercomponent found ..." should be
"... the Header component found ..."

Anonymous   
Printed
Page 117
final sentence on page

misplaced comma in "well, that"
change to: "It's just as well that, as with so many things in Perl, there's more than one way to do it."

Anonymous   
Printed
Page 139
figure 4-1

the word "Track" over the lower-right grey box should be lowercase "track".

Anonymous   
Printed
Page 141
Second text line after 1st code fragment

"reltionships" should be "relationships"

Anonymous   
Printed
Page 146
figure 4-3

the figure was built for an old example, and is incorrect and confusing for the current example.
Update figure with the following text:
- In the first bubble, "/view/beer/1" changes to "/artist/edit/110".
- In the third bubble, "view" changes to "edit" and "beer" changes to "artist".
- In first bubble on the right, 'Load up row "1"' changes to 'Load up row "110"'.
- In the second bubble on the right, "BeerDB::Beer->view" changes to "CD::Artist->edit".

Anonymous   
Printed
Page 187
code sample below 2nd paragraph

The last two statements of the code sample misspell "$identity" as "$itentity".

Anonymous   
Printed
Page 188
4th paragraph, 2nd sentence

"Perls doesn't know..."
should be:
"Perl doesn't know"

Anonymous   
Printed
Page 195
footnote at bottom of page

"it has kernel" should be "it has a kernel".

Anonymous   
Printed
Page 211
subroutine definition at the bottom of the page

The subroutine defined at the bottom of the page should be named "error" instead of
"not_found" for consistency with the text and code in the "A POE Web Server" section
(pages 210-212).

Anonymous   
Printed
Page 212
4th paragraph

Change:
after awhile
to:
after a while

Anonymous   
Printed
Page 213
1st paragraph

The code was correct for the 0.03 version of XML::RSS::Feed,
but the interface has changed. The current version of the code can be seen
at http://search.cpan.org/perldoc?POE::Component::RSSAggregator


Anonymous   
Printed
Page 215
2nd paragraph

Kwalitee Assurance
should be:
Kwalitee Ashuranse

Anonymous   
Printed
Page 228
code sample after second paragraph

The last line of code:
"push @classes if $class->isa('Test::Class');"
is missing an argument to push(). The code should read
"push @classes, $class if $class->isa('Test::Class');"

Anonymous   
Printed
Page 228
third paragraph

"That's how we define test methods and un the test,..."
should be:
"That's how we define test methods and run the test,..."

Anonymous   
Printed
Page 235
3rd paragraph, 1st sentence

"This determines that the user's format it safe and ..."
should be:
"This determines that the user's format is safe and ..."

Anonymous   
Printed
Page 237
2nd paragraph

Change:
HV*s for arrays
to:
HV*s for hashes
^

Anonymous   
Printed
Page 238
First paragraph after table

Note from this that arrays and 3hashes are...
should be:
Note from this that arrays and hashes are...

Anonymous   
Printed
Page 241
3rd Paragraph (in the code)

The line of code:

if (SvTRUE(get_sv("MyModule::DEBUG", TRUE")) {...

clearly has too many quotes/is missing a quote around TRUE. Either

if (SvTRUE(get_sv("MyModule::DEBUG", "TRUE")) {...
or
if (SvTRUE(get_sv("MyModule::DEBUG", TRUE)) {...

worked fine for me (using ActivePerl on XP with VC++6 and similar-ish code: testing
whether a variable had been created already in the main package)




Note from the Author or Editor:
The quotes around TRUE should be removed and the line should read:

if (SvTRUE(get_sv("MyModule::DEBUG", TRUE)) {...

The reported version with "TRUE" will compile but give warnings - get_sv requires an integer, not a string, as second parameter.

Anonymous   
Printed
Page 257
Line just before code snippet at bottom of page

"we can look up "e" and get (1,4), (3,4), and (4.1)."
should be:
"we can look up "e" and get (1,4), (3,4), and (4,1)."

Anonymous   
Printed
Page 257
1st code block

The code block:
my @neighbors= ...
is missing the last line.
The missing line is:

,[3,4],[4,3]]]);

Anonymous   
Printed
Page 266
code at bottom of page

In the code for whiten(), the call to tr is missing a space in the replacement list:
"tr/01/ /" should be "tr/01/ /"

Anonymous   
Printed
Page 271
Right hand column, line 18

"applications, Web (see Web appliations)" should be
"applications, Web (see Web applications)"

Anonymous