The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

ModPerl::PerlRun - Run unaltered CGI scripts under mod_perl

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>

Description

META: document that for now we don't chdir() into the script's dir, because it affects the whole process under threads. ModPerl::PerlRunPrefork should be used by those who run only under prefork MPM.

Special Blocks

BEGIN Blocks

When running under the ModPerl::PerlRun handler BEGIN blocks behave as follows:

  • BEGIN blocks defined in scripts running under the ModPerl::PerlRun handler are executed on each and every request.

  • BEGIN blocks defined in modules loaded from scripts running under 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 BEGIN blocks will be run only the first time each module is loaded, since those modules don't get reloaded on subsequent requests.

See also BEGIN blocks in mod_perl handlers.

CHECK and INIT Blocks

Same as normal mod_perl handlers.

END Blocks

Same as ModPerl::Registry.

Authors

Doug MacEachern

Stas Bekman

See Also

ModPerl::RegistryCooker and ModPerl::Registry.