CGI::Application.pm is version 4.5
Somehow I’ve managed to move beyond this problem. Probably because I dumped 
perlbrew.

I’m now getting a time out.  With traces and multiple debug statements I’m 
getting to this location for the time out:

sub AUTOLOAD {
    my($constname);
    ($constname = $AUTOLOAD) =~ s/.*:://o;
    $! = 0;
    my $val = constant($constname, @_ ? $_[0] : 0);
    if ($! != 0) {
        croak "Your vendor has not defined Socket macro $constname, used";
    }
    eval "sub $AUTOLOAD { $val }";
    goto &$AUTOLOAD;
}
This is from file 
/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level/Socket6.pm
I hit this inside the debugger.

The code below is from my module that inherits CGI::Application.
From some reason I don’t understand it calls 
CGI::Application::Plugin::TT::import the first thing.
I can’t find where that is coming from.
Why is it calling this before it even calls the “new” in Application.pm


warn "Got to here : " . __FILE__ . ':'.__LINE__."\n";
use strict;
use base 'CGI::Application';
warn "Got to here : " . __FILE__ . ':'.__LINE__."\n";
use CGI::Application::Plugin::TT; # Template Toolkit
use CGI::Application::Plugin::DBH (qw/dbh_config dbh/); # Database handles


On Nov 25, 2014, at 10:29 AM, John SJ Anderson 
<geneh...@genehack.org<mailto:geneh...@genehack.org>> wrote:

What version of CGI::Application do you have installed?
4.5

Assuming the most recent one
(https://metacpan.org/source/MARKSTOS/CGI-Application-4.50/lib/CGI/Application.pm),
line 1951 is:

   if ( $p{path_info} && $self->query->path_info() ) {

$self->query calls the 'query' method, defined at line 493. I'm
guessing code flow goes into the 'else' half of the branch there, and
ends up calling $self->cgiapp_get_query() (on line 503).

That method is defined at line 250, and ultimately returns the result
of calling CGI->new().

I would suggest either putting in some debug print() statements into
that cgiapp_get_query() routine, or using the debugger to stop
execution inside there and looking at what that call from CGI->new()
is actually returning.

chrs,
john.








On Tue, Nov 25, 2014 at 7:56 AM, Patton, Billy N 
<billy.pat...@h3net.com<mailto:billy.pat...@h3net.com>> wrote:
OS : mac 10.10.1 Yosemite
Perl version : 5.16.0 (perlbrew)
I have file cp.cgi that is the top level
It uses CP.pm
which inherits Base.pm
which inherits CGI::Application
CGI::Application Requires CGI.pm
CGI.pm has a use CGI::Util qw(… unescape …);

When I try and run cp.cgi I get a timeout.
The erro log only tells me that I get a timeout
[Tue Nov 25 09:13:53.677383 2014] [cgi:warn] [pid 461] [client ::1:63053] 
AH01220: Timeout waiting for output from CGI script 
/Library/WebServer/Documents/cportal/html/cp.cgi, referer: 
http://localhost/index.html

when I try and run it from the command line : perl cp.cgi
I get
<h1>Software error:</h1>
<pre>Undefined subroutine CGI::unescape
at 
/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application.pm
 line 1951.
</pre>
<p>
For help, please send mail to this site's webmaster, giving this error message
and the time and date of the error.

</p>
[Tue Nov 25 09:34:59 2014] cp.cgi: Undefined subroutine CGI::unescape
[Tue Nov 25 09:34:59 2014] cp.cgi:  at 
/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application.pm
 line 1951.

unescape exists in CGI::Util.pm and is exported.

When I put a Dumper \%INC I get: Making sure that I wasn’t mixing too many 
version

'CGI/Application.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application.pm’,
'CGI/Application/Plugin/Redirect.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/Redirect.pm',
'CGI/Application/Plugin/TT.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/TT.pm’,
'CGI/Application/Plugin/ValidateRM.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/ValidateRM.pm’,
'CGI/Application/Plugin/LogDispatch.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/LogDispatch.pm',
'CGI/Carp.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Carp.pm’,
'CGI/Application/Plugin/Config/YAML.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/Config/YAML.pm',
'CGI/Application/Plugin/DBH.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/DBH.pm’,
'CGI/Util.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Util.pm’,
'CGI/Application/Plugin/Forward.pm'  => 
'/Users/bpatto/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/CGI/Application/Plugin/Forward.pm’,

unescape does not exist in Application, even though it tells me line 1951
%INC shows me that it is including the right file.
Util.pm is exporting
package CGI::Util;
use base 'Exporter';
require 5.008001;
use strict;
use if $] >= 5.019, 'deprecate';
our @EXPORT_OK = qw(rearrange rearrange_header make_attributes unescape escape
       expires ebcdic2ascii ascii2ebcdic);

our $VERSION = '4.09’;

Reply via email to