hello,
i've got the following issue, i'm using an Object-method as
PerlFixupHandler, and depending on some Tests on the uri i want to set
the modperl Handler to another method of the object (not the class).(see
also the comments in the code below)
Any Suggestions out there?
thanks in advance
gernot
My Configuration:
Apache/2.0.53 (Win32) mod_perl/2.0.2 Perl/v5.8.8
<VirtualHost>
ServerName xxx
<Perl>
use lib "somepathtolib";
require "/path/to/startup.pl";
</Perl>
<Location />
SetHandler modperl
PerlFixupHandler $MyWebApp::Handler->fixup
</Location>
</VirtualHost>
startup.pl
-----------------------------------
use strict;
use lib "somepathtolib";
use WebApp::Handler;
$MyWebApp::Handler = new WebApp::Handler();
WebApp/Handler.pm
------------------------------------
package WebApp::Handler;
use strict;
sub fixup : method {
my ($self, $r) = @_;
my $test = ... # do some tests on uri
if ($test ne '1') {
# if test fails then set PerlResponseHandler to method
'response' of $self.
$r->handler('modperl');
# version 1:
$r->set_handlers(PerlResponseHandler =>
$self->response);
# response is called, but only with one
parameter 'WebApp::Handler=HASH(0xf00ff4)
# version 2:
$r->set_handlers(PerlResponseHandler =>
$self->can('response'));
# response is called, but only with one
parameter 'Apache2::RequestRec=SCALAR(0xab508c)'
}
return Apache2::Const::OK;
}
sub response : method {
my ($self, $r) = @_;
# generate my response
}
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.