Learning Perl, 3rd Edition by Randal L. Schwartz & Tom Phoenix The following corrections were made to the 10/03 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem Page xiii, third and fifth paragraph had the wrong URL: "http://www.oreilly.com/catalog/lperl/" NOW READS: "http://www.oreilly.com/catalog/lperl3/" p. 40, first paragraph, first sentence: NOW READS: If a scalar is the "singular" in Perl, as we described it at the beginning of Chapter 2, the "plural" in Perl is represented by lists and arrays. p. 43, third paragraph under "List Literals",the first line: "a list literal" NOW READS: "an array" (47) 7th Paragraph In the examples under "The shift and unshift operators": unshift @array, 4; # @array now has (4, 5); Extra semi-colon removed. NOW READS: unshift @array, 4; # @array now has (4, 5) (61) 2nd paragraph; Variable name $a HAS BEEN REPLACED with $fred variable name $b HAS BEEN REPLACED with $barney. p. 86, last line of last code example, the left curly brace HAS BEEN CHANGED to a right curly brace. p. 114, exercise 8-4. "thought" and "was" HAVE BEEN CHANGED to "think" and "is", respectively, in the third and fourth sample strings (for a total of four changes). That is, the second sample sentence NOW READS, "I think that that is the problem", and the third NOW READS, "I think that that that is the problem". [158] 3rd code fragment; body of foreach: push @big_old_files, $_ NOW READS: push @big_old_files, $filename {171} last example; The first line of the example creates a variable named $dir_to_process. However, the rest of the example used a variable named $dir. The three instances of $dir HAVE BEEN CHANGED to: $dir_to_process. {177} 3rd pharagraph; "...and the right part is a double-quotish string." NOW READS: "a double-quoted string." p. 188, the code example line (with "my $betty") has a comment. There was an unfortunate line break in the comment, so that the phrase "(not shown)" appeared to be uncommented. The code example NOW READS: my $betty = &dirname($wilma); # uses our own subroutine &dirname # (not shown) [194] 1st paragraph, 3rd line; The example of the system command: system 'for in *; do echo == $i ==; cat $i; done'; NOW READS: system 'for i in *; do echo == $i ==; cat $i; done';