Practical mod_perl by Stas Bekman, Eric Cholet 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 March 9, 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: {18} first code block; lines 3 and 5 should use $topsecret rather than $top {18} 3rd code block; line 4 is missing the ending semi-colon (26) 5th word of the 5th paragraph; "distrubutions" should be "distributions" [96] 2nd paragraph "For any..."; On this page it reads 'when different sections have conflicting information about the same resource it is not always obvious which directive takes precedence'. Yet on page 99 there is a complete section dedicated to the 'merging of directives' which gives a clear picture on the order. So either the statement on p96 is false or something is meant that is not discussed on page 99. AUTHOR: Frank is right. This can be clarified. Perhaps adding a sentence to the end of this para will do: If in doubt, one should refer to the section [merging of directives on page 99], which specifies the exact merging order. (101) last paragraph; It says 'mod_perl adds two more directives'. It might be due to my non-native English, but in the text that follows I count 3 "directives" , PerlRequire and PerlModule. AUTHOR: is not a directive, but a container. So the text is correct to say 'two more directives'. However reshuffling the sentences of this paragraph may cause less confusion. I'd suggest: mod_perl adds two more directives. Any file containing a Perl program can be executed at server startup simply by using the PerlRequire or PerlModule directives, as we will show shortly. In addition sections allow you to execute Perl code from within any configuration file at server startup time. An alternative solution is to change the first sentence to be: mod_perl adds a new container and two more directives. {299} sub render; The rendering should be: sub render { my $self = shift; my $location = canonpath(catdir($self->{r}->location,$self->{dir})); for (sort keys %{$self->{dirs} || {} }) { my $new_location=canonpath(catdir($location,$_)); print qq{$_
}; } for (sort keys %{$self->{files} || {} }) { my $new_location=canonpath(catdir($location,$_)); print qq{$_
}; } } [301] example 6-40; should include: use File::Spec::Functions qw(catdir canonpath); page 347 http://www.hpl.hp.com/personal/David_Mosberger./httperf.html should be http://www.hpl.hp.com/personal/David_Mosberger/httperf.html page 347 ftp://ftp.gnome.org/pub/GNOME/stable/sources/gtop/ should be ftp://ftp.gnome.org/pub/GNOME/sources/gtop/ (366) First line on page; In the first line on the page, "this" is misspelled "thsi": "...but Apache::DBI overrides thsi with..." page 540 http://www.w3.org/Protocols/rfc1945/rfc1945/ should be http://www.w3.org/Protocols/rfc1945/rfc1945.txt page 540 http://www.w3.org/Protocols/rfc2616/rfc2616/ should be http://www.w3.org/Protocols/rfc2616/rfc2616.html page 582 http://web.archive.org/web/20011116021648/http://w3.one.net/~jhoffman/sqltut.htm should be http://web.archive.org/web/20011116021648/w3.one.net/~jhoffman/sqltut.htm page 596 http://perl.apache.org/docs/general/perl_reference.html#Exception_Handling_for_mod_perl should be http://perl.apache.org/docs/general/perl_reference/perl_reference.html#Exception_Handling_for_mod_perl page 627 http://www.perl.com/CPAN/authors/id/A/AE/AE/ should be http://www.perl.com/CPAN/authors/id/A/AE/AEPAGE/ page 733 Numbered list error: 1. Finalization should be 3. Finalization page 836 ftp://theoryx5.uwinnipeg.ca/pub/other/ppd/ should be ftp://theoryx5.uwinnipeg.ca/pub/other page 852 http://www.w3.org/TR/xslt/ should be http://www.w3.org/TR/xslt