Thanks for your reply.  

But why get into all of this confusion when:

print "Content-type: text/html\r\n\r\n"

just works?

Why would I want to use:

$request = Apache2::RequestUtil->request();

-----Original Message-----
From: Tom Schindl [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 15, 2005 12:29 AM
To: Justin Luster
Cc: 'mod_perl List'
Subject: Re: Do I need Apache2::RequestUtil::request( )?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Justin,

I try to answer you questions step by step:

1. Why does print "Content-type: text/html\r\n\r\n" work?
Because $r->content_type("text/html") does the same behind the scences

2. Should I use Apache2::RequestUtil->request():
This is only available as of mp-2.0.0 and not mp1.99 so you could not
use it earlier than mp-2.0.0.

3. How can I run scripts under mp1, mp1.99, mp2
- -------------------8<--------------------------
my $MOD_PERL;

if (exists $ENV{MOD_PERL}) {
    if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION}
== 2) {
        $MOD_PERL = 2;
    } else {
        ## maybe there is a %ENV-Var to use but I can not recover how
        ## it's named
        eval "require mod_perl";
        if( defined $mod_perl::VERSION ) {
            if ($mod_perl::VERSION >= 1.99) {
                $MOD_PERL = 1.99;
            } else {
                $MOD_PERL = 1;
            }
        }
    }
}

my $request;

if( $MOD_PERL == 2 ) {
     $request = Apache2::RequestUtil->request();
} elsif( $MOD_PERL == 1.99 ) {
     $request = Apache->request();
} else {
     $request = Apache->request();
}
- -------------------8<-------------------

The problem you may want to face is that you need a pre-2.0.0
documentation because functions and their arguments may have changed so
maybe need the mp2-mp1.99-mp1-switch also in your code.

Tom

Justin Luster wrote:
> Hi,
> 
>  
> 
> I'm still struggling with trying to understand how Mod_Perl 2 works. 
> All I want to do is to have a regular Perl script run under Mod_Perl
> just to speed it up.
> 
>  
> 
> In the past, in Mod_Perl 1 I?ve used this:
> 
>  
> 
> sub PrintHeader
> 
> {
> 
> if ($ENV{'PERL_SEND_HEADER'})
> 
> {
> 
>                         print "Content-type: text/html\r\n\r\n";
> 
> }
> 
> else
> 
> {
> 
>             my $r = Apache->request;
> 
>             $r->content_type('text/html');
> 
>             $r->send_http_header;
> 
> }
> 
> }
> 
>  
> 
> I then read the documentation where it says:
> 
>  
> 
> Apache->request has been replaced with Apache2::RequestUtil::request(
). 
> 
>  
> 
> There is also some other documentation in that section that I don?t
> quite understand.  In testing and messing around with this in Mod_Perl
2
> I?ve noticed that the simple
> 
>  
> 
> print "Content-type: text/html\r\n\r\n";
> 
>  
> 
> just works.  My Apache configuration looks like this:
> 
>  
> 
> <Directory C:\Apache2\Apache2\htdocs\develop>
> 
>             Options ExecCGI
> 
>             AddHandler cgi-script .pl
> 
>             AddHandler cgi-script .cgi
> 
>  
> 
> #For ModPerl Only
> 
>             <IfModule mod_perl.c>
> 
>             <Files ~ (\.pl)>
> 
>                         SetHandler perl-script
> 
>                         PerlResponseHandler ModPerl::Registry
> 
>                         Options ExecCGI
> 
>                         allow from all
> 
>                         PerlOptions +ParseHeaders
> 
>             </Files>
> 
>             </IfModule>
> 
> </Directory>
> 
>  
> 
> I?m thrilled if:
> 
>  
> 
> print "Content-type: text/html\r\n\r\n";
> 
>  
> 
> just works.  But I want to make sure I understand it and that it is OK
> before releasing this.
> 
>  
> 
> I?m just using ModPerl::Registry to speed regular Perl CGI scripts up.

> The code needs to work with regular CGI, Mod_Perl 1, Mod_Perl 1.99,
and
> Mod_Perl 2.
> 
>  
> 
> And by the way $ENV{'PERL_SEND_HEADER'} does not seem to exist any
> more.  Is this not available in Mod_Perl 2? 
> 
> How do detect:
> 
>  
> 
> PerlOptions -ParseHeaders?
> 
>  
> 
> Thanks for your help,
> 
>  
> 
> Justin
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
Comment: Using GnuPG with Mandriva - http://enigmail.mozdev.org

iD8DBQFDKSKokVPeOFLgZFIRAi8sAKCoW1s2Ds2kWYvrMDQWlu5pdekYYACeOBa4
tN0ebd2NBiGX2KJ7UEQa8Jc=
=jUT+
-----END PGP SIGNATURE-----


Reply via email to