Subject: | PL_linestr not long enough, was Devel::Declare loaded soon enough |
Perl code using TryCatch doesn't work when run under Apache mod_perl.
The first part of the error message in the Apache log is:
PL_linestr not long enough, was Devel::Declare loaded soon enough
Evidently this may be a problem with Devel::Declare, rather than
TryCatch, but the error message only appears if I have a try{} block in
my code.
I have attached example code below. Here is some more info about my
environment:
Result in Apache error log under mod_perl (i.e. AddHandler perl-script .pl)
PL_linestr not long enough, was Devel::Declare loaded soon enough in
/home/rohan/studentdb/testdd.pl at
/usr/local/lib/perl/5.10.1/Devel/Declare/Context/Simple.pm line 71.\n
Result in browser under normal CGI (i.e. AddHandler cgi-script .pl)
MOD_PERL=
test.
Result in browser if I comment out the "try {" line
MOD_PERL=mod_perl/2.0.4
test.
/usr/bin/perl -V returns
brine:/etc/apache2/sites-enabled# /usr/bin/perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi
(with 53 registered patches, see perl -V for more detail)
cat /etc/debian_version
6.0.2
apache2 -v
Server version: Apache/2.2.16 (Debian)
Server built: Mar 22 2011 21:14:10
aptitude show libapache2-mod-perl2 | head -4
Package: libapache2-mod-perl2
State: installed
Automatically installed: no
Version: 2.0.4-7
#!/usr/bin/perl
# use Devel::Declare; -- makes no difference
use TryCatch; # v.-1.003000
use CGI;
my $q=CGI->new;
print $q->header();
print $q->start_html();
print "MOD_PERL=".$ENV{"MOD_PERL"}."<br>\n";
try {
print "test.\n";
};
print $q->end_html();