Learning Perl, 2nd Edition by Randal L. Schwartz and Tom Christiansen Here are the changes that were made in the 7/98 reprint. (1) paragraph 2, line 4: "that,f" changed to "that," (3) "bookquestions@ora.com" changed to "bookquestions@oreilly.com" (10) para. 3, last line: "}" changed from Roman to constant width font {20} line 2 of text: "init_word" changed to "init_words" (20) 1st para, 3rd to last line: "$!" changed from Roman to constant width font {24} in the first code example, added a semicolon to end of the next-to-last line {30} the final example, the second line of code: dbmopen (%last_good, "lastdb", 0666),; changed to dbmopen (%last_good, "lastdb", 0666); {38,39} The table heading should say: "Table 2-3. Associativity and Precedence of Operators: Highest to Lowest" (39) Table 2-3: second "Nonassociative" entry: added close parenthesis "(noninclusive and inclusive range" {51} first code example, line 3: changed ($a,$b,$c) to ($a,$b,$c); {52} next-to-last code example: added semicolons to the end of each line {52} in first sample code: @fred = @barney = (2, 3, 4); ' # same thing deleted that extraneous apostrophe. line now reads @fred = @barney = (2, 3, 4); # same thing (53) para. 4, line 1: "beyond the ends" changed to "beyond the end" (64) next-to-last para., line 2: "$_" changed from Roman to constant width font {72} "while" example, line 1: removed the close parenthesis after "$line" (72) last para., line 1: "$_" changed to constant width font {79} line 2 from the bottom: The "a" in "a b" changed to Roman. So did the period after the "c". (85) Under "Selecting a Different Target (the =~ Operator)": the "1" (number one) in the third and fourth lines changed to an "l" (letter el) **This change was made in the 7/98 reprint; however, it is incorrect. The code should read "1" (number one), not "l" (letter el). So here's how it should read (letter L capitalized only to emphasize it): $a =~ /(.)\1/; # also true (matches the double L) {88} next-to-last code example, line 1: added semicolon to end of the line, after "hello, world" {93} last code example, line 2: added a semicolon after say_hello() (134) next-to-last line of para. 1: "support rich" should be "support-rich" {140} last code example, line 2: added a semicolon to the end of the line {147} last code, 1st line: fork()) changed to fork())) {148} last code, 1st line: fork()) changed to fork())) {189} first code, lines 8 and 11: "print p(..." changed to "print q(..." {199} line -8: "LOCK-EX" should be "LOCK_EX" {215} #5, para. 4, line 2: "less than 32" should be "less than or equal to 32" {219} Solution to chapter 7 question 2c changed to: while (<>) { print if (/^[^aeiou]*a[^eiou]*e[^aiou]*i[^aeou]*o[^aeiu]*u[^aeio]*$/); } (225) 1st paragraph, line before the last: "write" changed to constant width font {234} Chapter 18, #1, line 9 of code: the extra close parenthesis was deleted