Prototype Mismatch in ModPerl::PerlRun

Daniel Ragle <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Greetings,

I'm investigating short term solutions for site performance (long term 
is a full rewrite of the app) and I'm working for the first time with 
ModPerl::PerlRun (and ModPerl::PerlRunPrefork, both seem to exhibit the 
same behavior) and feel like I'm missing something obvious.

I have this reduction (as test2.pl):

####################
#!/usr/bin/perl

use strict;
use warnings;

use Time::HiRes qw(time);

use CGI;
my $cgi = CGI->new();

print $cgi->header();
print "<h1>Hello World</h1>\n";
print "<h1>HiRes time is: ", time(), "</h1>\n";
#####################

The script runs properly as far as I can see, but I'm getting Prototype 
Mismatch warnings in the log with each hit after the first one:

Prototype mismatch: sub 
ModPerl::ROOT::ModPerl::PerlRunPrefork::var_www_test_test2_2epl::time: 
none vs () at /var/www/test/test2.pl line 6.

Other tests reveal it seems to happen pretty much anytime I import 
something from a module into the script. I also tried loading 
Time::HiRes into the startup (with and without the qw(time) import) and 
it didn't make a difference; still get the error the first time I run 
the script. If I make a copy of the script (say test3.pl), it will do 
the same thing: The first run of the script produces no warning (even 
after I've run test2 multiple times), but second and subsequent runs do 
produce the warning.

My test setup is pretty minimal; an empty startup script and this for my 
config:

PerlModule ModPerl::PerlRunPrefork Apache2::Status
PerlRequire /etc/apache2/startup/empty_startup.pl
<Location /perl-status>
     SetHandler perl-script
     PerlResponseHandler Apache2::Status
     PerlSetVar StatusOptionsAll On
     Require ip 127.0.0.1
</Location>
<VirtualHost *:443>
     SSLEngine On
     DocumentRoot /var/www/test
     <Directory /var/www/test>
             Options ExecCGI
             AddHandler perl-script .pl
             AllowOverride All
             PerlResponseHandler ModPerl::PerlRunPrefork
             Require all granted
     </Directory>
</VirtualHost>

Have I configured or otherwise set something up wrong? I'd rather not 
disable the warning and am puzzled as to what it's upset about.

mod_perl is version mod_perl/2.0.10 according to the perl-status 
environment display, though ModPerl::PerlRun shows in the module list at 
version 1.99 (don't know if that's expected or not). Apache is 2.4.38.

Thank you!

Dan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.