The following are some of the mostly frequently asked questions related to mod_perl configuration issues (and the answers, of course).
Check your configuration files and make sure that +ExecCGI is turned on in your configurations. + adds an option without resetting any options that were previously set. So this is how the <Location> section might look:
<Location /perl> SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI PerlSendHeader On </Location>
You probably sent the HTTP header via print( ):
print "Content-type: text/html\n\n";
If this is the case, you must make sure that you have:
PerlSendHeader On
in the configuration part of the <Location> section:
<Location /perl> ... PerlSendHeader On </Location>
This adds a little overhead to the output generation, because when this configuration is enabled, mod_perl will parse the output and try to find where the header information ends so it can be converted into a proper HTTP header. It is meant only for mod_cgi emulation with regard to HTTP headers.
No. Any virtual host will be able to see the routines from a startup.pl file loaded for any other virtual host.