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.
| Version |
Location |
Description |
Submitted By |
Date Submitted |
Date Corrected |
| Printed |
Page vi
under "13. Writing a Distribution" |
"Controlling the Distribution withMakefile.PL"
NOW READS:
"Controlling the Distribution with Makefile.PL"
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 1
Code block at top of page |
|
Anonymous |
|
|
| Printed |
Page 1
First sentence |
"Welcome to next step in your understanding of Perl."
NOW READS:
"Welcome to the next step in your understanding of Perl."
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 2
First sentence under "Using require" |
"Suppose navigate.pl ..."
|
Anonymous |
|
|
| Printed |
Page 3
Require code lines two-thirds of the way down the page |
|
Anonymous |
|
|
| Printed |
Page 4
Second-to-last paragraph, third sentence |
"This means that even if navigate.pl ..."
Page 9:
|
Anonymous |
|
|
| Printed |
Page 5
Left-most code-block in Figure 2-2 |
|
Anonymous |
|
|
| Printed |
Page 6
Title of bottom-most code block in Figure 2-2 |
|
Anonymous |
|
|
| Printed |
Page 8,9
Six locations; four on page 8 and two on page 9---see detailed description. |
It appears that the file "navigation.pl" has been mistakenly renamed "navigate.pl" in
all the references to it on pages 8 and 9.
Page 8:
|
Anonymous |
|
|
| Printed |
Page 11
code block |
turn_toward_heading(compute_heading_to_island());
NOW READS:
turn_towards_heading(compute_heading_to_island());
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 12
|
navigation_turn_toward_heading(compute_heading_to_island());
NOW READS:
navigation_turn_towards_heading(compute_heading_to_island());
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 13
first code block, line 3 |
turn_towards_port()
NOW READS:
turn_toward_port()
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 13
second code block, line 4 |
turn_towards_port()
NOW READS:
turn_toward_port()
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 13
2nd code block |
Navigation::turn_toward_heading(compute_heading_to_island());
NOW READS:
Navigation::turn_towards_heading(compute_heading_to_island());
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 14
2nd line of code |
@homeport = (21.1, -157.525);
NOW READS:
@homeport = (21.283, -157.842);
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 14
Trivia Note |
(Trivia note: 21.1 degrees north, 157.525 degrees west is the location...
NOW READS:
(Trivia note: 21.283 degrees north, 157.842 degrees west is the location...
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 14
code block at bottom of page, line 9 (twice) |
turn_towards_port()
NOW READS:
turn_toward_port()
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 15
first code block, line 2 |
@homeport = (21.1, -157.525);
NOW READS:
@homeport = (21.283, -157.842);
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 19
code samples of copying reference |
$third_reference_skipper
NOW READS:
$third_reference_to_skipper
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 19
middle of page |
if ($reference_to_skipper = = $second_reference_to_skipper) {
print "They are identical references.
";
NOW READS:
if ($reference_to_skipper == $second_reference_to_skipper) {
print "They are identical references.
";
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 34
Figure 4-1 |
The title of the data structure on the right should be @data2, not @data1.
|
Anonymous |
|
|
| Printed |
Page 38
2nd paragraph |
"anonymous hash"
NOW READS:
"anonymous array"
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 39
First paragraph |
"Thus, you cam rewrite the roster creation as:"
NOW READS:
"Thus, you can rewrite the roster creation as:"
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 49
Code after third paragraph, the variable |
$totalbytes
NOW READS:
$total_bytes
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 62
middle |
Professor: By my calculations, you must be Gilligan!
";
Professor: By my calculations, you must be Skipper!
";
NOW READS:
Professor: By my calculations, you must be Gilligan!
Professor: By my calculations, you must be Skipper!
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 88
first sentence |
"Object-oriented programming (often called OOP) helps programmers run code sooner and maintain it easier at
the cost of making the resulting programs slower."
should be:
"Object-oriented programming (often called OOP) helps programmers run code sooner and maintain it more easily at
the cost of making the resulting programs slower."
|
Anonymous |
|
|
| Printed |
Page 88
3rd paragraph, 3rd sentence |
"If your whole program is only be a couple hundred lines of code, using objects is probably a waste."
should be:
"If your whole program is only a couple hundred lines of code, using objects is probably a waste."
|
Anonymous |
|
|
| Printed |
Page 95
3rd paragraph from bottom, last sentence |
"Animal::speak,."
should be
"Animal::speak."
|
Anonymous |
|
|
| Printed |
Page 109
Under "Getters that double as setters", 1st line of code after "sub Color" |
The code says:
sub color {
my $shift;
it should be:
sub color {
my $self = shift;
|
Anonymous |
|
|
| Printed |
Page 127
section 11.2, after 3th text paragraph |
my @horses_only = ref $_ eq "Horse", @all_animals;
NOW READS:
my @horses_only = grep ref $_ eq "Horse", @all_animals;
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 129
footnote |
The first two occurrences of the word "goto" are constant width, and the last two are normal typeface.
|
Anonymous |
|
|
| Printed |
Page 133
Code example |
Creating and opening a filehandle at once with $fh = IO::File->open() doesn't work with Perl 5.8.0.
Replace "open" with "new", and it works in one step.
my $handle = $output_handles{$name} ||=
IO::File->new(">$name.info") || die "Cannot create $name.info: $!";
|
Anonymous |
|
|
| Printed |
Page 134
3rd block of code |
print $fh, "$_
" for 1..10;
NOW READS:
print $fh "$_
" for 1..10;
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 140
1st paragraph |
The first paragraph on page 140, including the two bullets following, should read something like this:
A primarily OO module is distinguished from a primarily non-OO module by
whether its functions are intended to be OO methods, and
whether the functions are made available for export.
* A primarily OO module has functions that are meant to be called as class
methods, possibly returning instances upon which you issue further
instance method calls. It generally doesn't export any functions at all,
making the import list irrelevant.
* A primarily non-OO module normally has one or many functions available
for export, often with a useful default export list. Typically, few if any
of the module's functions may be used as method calls.
|
Anonymous |
|
|
| Printed |
Page 175
4th paragraph; The second and third sentences |
"indicies"
should be:
"indices"
|
Anonymous |
|
|
| Printed |
Page 181
Third paragraph under "Exrecise 1"; paragraph begins: "Next, define the ...". |
At the end of the second (last) sentence in this paragraph, the name of the module
subroutine is misspelled;
it says "Ooogaboogoo::date::day"
but is should read:
Oogaboogo::date::day
|
Anonymous |
|
|
| Printed |
Page 185
simplified solution to ex. 3-2 |
The simplified solution suggests this assignment:
$tb = $total_bytes{$source};
This causes $tb to contain a hash reference, so the arrow operator needs to be used:
my @destinations = sort { $tb{$b} <=> $tb{$a} } keys %$tb;
should be:
my @destinations = sort { $tb->{$b} <=> $tb->{$a} } keys %$tb;
and
print "$source: $tb{$all} total bytes sent
";
should be:
print "$source: $tb->{$all} total bytes sent
";
|
Anonymous |
|
|
| Printed |
Page 185
in the last code excerpt in that section in the book, the suggested solution in section A.3.2 is |
print " $source => $destination: $tb{$destination} bytes
";
it should be:
print " $source => $destination: $tb->{$destination} bytes
"
|
Anonymous |
|
|
| Printed |
Page 190
non-code paragraph |
"In Chapter 9, you learned"
should read
"In Chapter 11, you learned"
|
Anonymous |
|
|
| Printed |
Page 191
Second line of the speak function of the Mouse class |
$class->SUPER::speak;
NOW READS:
$class->SUPER::speak(@_);
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 193
3rd code block |
"sub color"
NOW READS:
"sub default_color".
|
Anonymous |
|
Nov 01, 2005 |
| Printed |
Page 195
Code at top of page |
The IO::File method "open" changed it's name to "new" in perl 5.8.
|
Anonymous |
|
|