=head1 NAME
ModPerl::PerlRun - Run unaltered CGI scripts under mod_perl
=head1 Synopsis
# httpd.conf
PerlModule ModPerl::PerlRun
Alias /perl-run/ /home/httpd/perl/
<Location /perl-run>
SetHandler perl-script
PerlResponseHandler ModPerl::PerlRun
PerlOptions +ParseHeaders
Options +ExecCGI
</Location>
=head1 Description
META: document that for now we don't chdir() into the script's dir,
because it affects the whole process under
threads. C<L<ModPerl::PerlRunPrefork|docs::2.0::api::ModPerl::PerlRunPrefork>>
should be used by those who run only under prefork MPM.
=head1 Special Blocks
=head2 C<BEGIN> Blocks
When running under the C<ModPerl::PerlRun> handler C<BEGIN> blocks
behave as follows:
=over
=item *
C<BEGIN> blocks defined in scripts running under the
C<ModPerl::PerlRun> handler are executed on each and every request.
=item *
C<BEGIN> blocks defined in modules loaded from scripts running under
C<ModPerl::PerlRun> (and which weren't already loaded prior to the
request) are executed on each and every request only if those modules
declare no package. If a package is declared C<BEGIN> blocks will be
run only the first time each module is loaded, since those modules
don't get reloaded on subsequent requests.
=back
See also L<C<BEGIN> blocks in mod_perl
handlers|docs::2.0::user::coding::coding/C_BEGIN__Blocks>.
=head2 C<CHECK> and C<INIT> Blocks
Same as normal L<mod_perl
handlers|docs::2.0::user::coding::coding/C_CHECK__and_C_INIT__Blocks>.
=head2 C<END> Blocks
Same as
C<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry/C_BEGIN__Blocks>>.
=head1 Authors
Doug MacEachern
Stas Bekman
=head1 See Also
C<L<ModPerl::RegistryCooker|docs::2.0::api::ModPerl::RegistryCooker>>
and C<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry>>.
=cut