From: Mischa POSLAWSKY Date: Mon, 2 Jun 2008 08:10:52 +0000 (+0000) Subject: rewrite documentation of mod_perl as the only persistent backend X-Git-Tag: 3.22~3 X-Git-Url: http://git.shiar.nl/perl/plp/.git/commitdiff_plain/5a304009f58fdfc2158e2ebfc9dd0a7f610fabb1 rewrite documentation of mod_perl as the only persistent backend Update docs to reflect the multiple persistent backends (mod_perl was mentioned specifically where FastCGI now qualifies as well). --- diff --git a/README b/README index 17e11ff..0f057eb 100644 --- a/README +++ b/README @@ -3,8 +3,8 @@ PLP - PERL IN HTML PAGES PLP is yet another Perl embedder, primarily for HTML documents. Unlike with other Perl embedders, there is no need to learn a meta-syntax or object model: one can just use the normal Perl constructs. PLP runs -under mod_perl for speeds comparable to those of PHP, but can also be -run as a CGI script. +under FastCGI and mod_perl for speeds comparable to those of PHP, but +can also be run as a standard CGI script. INSTALLATION diff --git a/lib/PLP.pm b/lib/PLP.pm index 2c6d714..7cb8d55 100644 --- a/lib/PLP.pm +++ b/lib/PLP.pm @@ -407,8 +407,9 @@ These are described in L. Not only syntax is important, you should also be aware of some other important features. Your script runs inside the package C and shouldn't leave it. This is because when your script ends, all global variables in the -C package are destroyed, which is very important if you run under -mod_perl (they would retain their values if they weren't explicitly destroyed). +C package are destroyed, which is very important if you run a +persistent backend (they would retain their values if they weren't explicitly +destroyed). Until your first output, you are printing to a tied filehandle C. On first output, headers are sent to the browser and C is selected for @@ -420,13 +421,13 @@ line your output started. An alternative way of setting headers is using Perl's BEGIN blocks. BEGIN blocks are executed as soon as possible, before anything else. -Because the interpreter that mod_perl uses never ends, C blocks won't -work properly. You should use C instead. Note that this is a not -a built-in construct, so it needs proper termination with a semi-colon (as do -C and C). +Unless you're running as CGI, the interpreter won't exit after processing a page, +so C blocks won't work properly. You should use C instead. +Note that this is a not a built-in construct, so it needs proper termination +with a semi-colon (as do C and C). -Under mod_perl, modules are loaded only once. A good modular design can improve -performance because of this, but you will have to B the modules +When run persistently, modules are loaded only once. A good modular design can +improve performance because of this, but you will have to B the modules yourself when there are newer versions. The special hashes are tied hashes and do not always behave the way you expect, diff --git a/lib/PLP/FAQ.pod b/lib/PLP/FAQ.pod index 7496f54..0630edb 100644 --- a/lib/PLP/FAQ.pod +++ b/lib/PLP/FAQ.pod @@ -38,10 +38,11 @@ long as you do not switch packages). =item How can I make PLP faster? -With mod_perl, PLP is a lot faster than with CGI. CGI scripts execute an -external interpreter, but mod_perl is a Perl interpreter inside Apache. +With mod_perl or FastCGI, PLP is a lot faster than with CGI. +Instead of executing a new perl process for each request, the same interpreter +will serve multiple pages. -=item I already use mod_perl, can I make my scripts even faster? +=item I already run persistently, can I make my scripts even faster? Well, you already have scripts that probably are faster than PHP equivalents, but speed maniacs always want more. Modules are cached, so with a proper module @@ -78,15 +79,15 @@ B the code is executed (at compile-time). =item Why do my C blocks never get executed? -If they are not, you are probably running under mod_perl. The blocks are -executed when the interpreter stops, but the mod_perl interpreter is not exited -after the PLP script has ended. Use C blocks instead. Please note that -C is a normal statement, so you may need a semicolon. +These blocks are executed when the interpreter stops, which only occurs if you +are running as CGI. To catch the exit of a PLP script, use C blocks instead. +Please note that C is a normal statement, so you may need a semicolon. <: PLP_END { :> <: } :> + contents =item Can I disable the error messages?