Perl & XML by Erik T. Ray, Jason McIntosh This errata page lists errors outstanding 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 January 17, 2006. 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: {5} computer output, 5th line from end; "meowmeow@augh.org" should be: "meow@263A.org" [38] Example 3-1; The regexes in the example use "/^&..." instead of the correct "/^<..." This should be changed in 8 places on page 39 (one if(), 7 elsif()). The elsif on page 40 is correct as is. ***Yes, that's correct. I am embarassed by this one. {67} Example 3-12 code; Line 9 of the code is missing the trailing semicolon. It should be: $u .= "\n\nOh, hey, it's Unicode all of a sudden. Hooray!!\n"; (95) second line from bottom; The line "Use of uninitialized value in print at conv line 39." probably shouldn't be there. The same for the top of page 96 too. > ***Yes, that is an embarassing error. Please remove those lines. (109) Snippet of XML at the top; There are no slashes in the closing tags: ... should be ... etc. ***Yes. ======= [125] within the code sample; my package XML::Parser is current as of 6/26/2002 and I installed XML::Grove today from the author's site. Accordingly, when the code sample on page 125 is attempted, the following error message is encountered: Can't locate object method "name" via package "XML::Grove::PI" at ... It appears the name method is not valid for objects in the list of $grove->contents. ***I don't know. I don't have time to research this. Maybe for the next edition. ===== (140) 2nd code example; When the code example calls the purge_nselems subroutine, the ampersand in the code does not appear as an ampersand but instead as an ampersand PLUS the string "amp;". As the form for the errata submissions is probably also buggy in accepting ampersands, I avoid using a real ampersand to describe the bug. ***I don't understand this erratum. However, you can remove the & character from line 10 of that example and it would be better style. ====== [155] Example 8-10, 4th paragraph, line 2; foreach my $file ( @source_files ) { should read : foreach my $source_file (@ source_files) { ***Replace with this: foreach my $source_file (@source_files) {