Perl Cookbook, 2nd Edition by Tom Christiansen, Nathan Torkington This errata page lists errors corrected in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated August 20, 2007. 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-number?: reader question or request for clarification Confirmed errors: [195] last paragraph; "The /m modifier allows ^ and $ to match immediately before and after an embedded newline, respectively." It ought to read "after and before". The example in the next line correctly states "/^=head[1-7]/m would match ... right after a newline ..." (410) Near page bottom, line of code beginning "return ..."; return $errcount ? undef() : %record; Should be: return $errcount ? undef : \%record; Here's the entire piece of code, corrected: sub cite { my (%record, $errcount); ... return $errcount ? undef : \%record; } $op_cit = cite($bid) or die "couldn't make a reference\n"; (591) 8th last line of code; Change: print colored("venom lack\n", "red", on_black"); to: print colored("venom lack\n", "red", "on_black"); (747) 2nd paragraph in "Discussion" section; "It looks strange to see all those chained method invocation" should read: "It looks strange to see all those chained method invocations" (754) 6th last line; The line: # Iterate over addresses give on command line. should read: # Iterate over addresses given on command line. (783) "Problem" paragraph, 5th line; "display a list of product to edit" should read: "display a list of products to edit"