Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^2: mod_perl and CGI behavior

by naChoZ (Curate)
on Sep 25, 2020 at 20:50 UTC ( [id://11122220]=note: print w/replies, xml ) Need Help??

in reply to Re: mod_perl and CGI behavior
in thread mod_perl and CGI behavior

Unfortunately it seems deeper than that.

Looking at the code over on github here, you can see that the ->new method checks if mod_perl is being used and, if it is, gives you back an object with the request attached to it, and all that stuff...

But, regardless, I dumbed down the script to just...

#!/perl/bin/perl use strict; use warnings; use Data::Dumper::Names; use CGI; use Apache2::Connection (); use Apache2::RequestRec (); $| = 1; my $header = CGI::header(); print STDERR Dumper($header);

...and it still outputs just...

$header = '';


Replies are listed 'Best First'.
Re^3: mod_perl and CGI behavior
by davebaker (Pilgrim) on Sep 30, 2020 at 20:32 UTC
    Yes, something going on at line 1617 of at github, inside sub "header" --
    if (($MOD_PERL >= 1) && !$nph) { $self->r->send_cgi_header($header); return ''; }
    which explains the empty set being returned, after it's invoked a "send_cgi_header" mod_perl method that seems to be designed to take the place of sub "header" as a practical matter.

      Interesting. That did the trick actually. So this test code...

      my $test_header = $cgi->header( -type => 'application/xml' ); ddump('test_header', __LINE__, $test_header); my $another_test_header = $cgi->header( -nph => 1, -type => 'application/xml' ); ddump('another_test_header', __LINE__, $another_test_header);

      ...produced the following debug output...

      $test_header_line_673_1 = ''; $another_test_header_line_680_1 = 'HTTP/1.1 200 OK Server: Apache/2.4.34 (Red Hat) OpenSSL/1.0.2k-fips mod_perl/2.0.11 Pe +rl/v5.22.4 Date: Wed, 07 Oct 2020 21:53:46 GMT Content-Type: application/xml; charset=ISO-8859-1 ';


        Congratulations, Andy, and thanks for sharing the detailed test code and output. I haven't used ddump but that aspect of your post is very helpful and interesting to me.

      Interesting. I wonder what that nph (no parsed header) business ends up doing... I'll have to experiment with that.



Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11122220]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (6)
As of 2024-05-21 19:05 GMT
Find Nodes?
    Voting Booth?

    No recent polls found