Re: $r vs. Apache2::RequestUtil->request

Fred Moyer <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <CAHrynWCPQP0TMtPhxbqKnNzvmMsTAmW-7E9VZ9dzcL4OB8oeEw@mail.gmail.com>
Apache2::Request is a Perl module which is part of the libapreq Apache
software project.  You have to install apreq (
http://httpd.apache.org/apreq/ ) and then load the shared object in
httpd.conf via LoadModule.  It contains many convenience methods that
CGI.pm normally provides.

Apache2::RequestUtil is part of the mod_perl2 core.

If you are using $r->log then you need to 'use Apache2::Log;' in
either startup.pl or your module.

Hope that helps.

On Tue, Oct 25, 2011 at 11:53 AM, Charlie Katz <[email protected]> wrote:
> Okay, never mind.  The Apache2::Log methods are in fact working for me.
>  Stupid error.
> I am still curious about the difference between the Apache2::Request object
> which is the default request record accessor, and the Apache2::RequestRec
> object which comes out of Apache2::RequestUtil::request.
>
> On Tue, Oct 25, 2011 at 1:43 PM, Charlie Katz <[email protected]> wrote:
>>
>> Hi, I'm confused about something.  I am cleaning up some legacy Perl code
>> in our application, and I find a number of our custom Perl modules have
>> functions which require $r be passed to them solely for use in logging (e.g.
>> $r->log->error()). I want to remove that requirement, so I am changing
>> things around so that the code uses Apache2::RequestUtil::request to get the
>> request object when needed.  This is working fine, except when I use the
>> object retrieved that way, the $r->log methods fail to write to the server
>> log.   In addition, I see that the original $r and the new one from
>> A::RU::request are different:
>> use Data::Dumper;
>> print STDERR Dumper($r);
>> print STDERR Dumper(Apache2::RequestUtil->request);
>> yields
>> $VAR1 = bless( do{\(my $o = 158143776)}, 'Apache2::Request' );
>> $VAR1 = bless( do{\(my $o = 158116376)}, 'Apache2::RequestRec' );
>> Can someone help me understand this difference, and how to use the object
>> retrieved from A::RU::request to access the Apache2::Log methods?  Why isn't
>> the original $r an Apache2::RequestRec object?
>> This is Perl 5.14.2, mod_perl 2.0.5
>> Thanks.
>> Charlie Katz
>
>
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.