Martin Moss wrote:
Ok, that makes sense, thank you:-)
But 'What' should I return, is $r->main the right thing to return?
I've found that it's pretty rare that you want to mess with main vs subrequest logic
yourself. instead, I would just make the constructor return an object based on whatever
mod_perl passes it which is, in turn, whatever request record Apache deems to be the
proper one for the current (sub)request.
so new() should probably just be something like
sub new {
my ($class, $r) = @_;
$r = Apache::Request->new($r);
my $self = bless {_r => $r}, $class;
$self->init();
return $self;
}
if it is important to insure that you only populate object attributes once, even in the
case of internal redirects or lookups, you could hang attributes off of pnotes in the main
request
sub init {
my $self = shift;
$t = ubstr(Digest::MD5...);
if ($r->main) {
$self->{XX_created_time_XX} = $t;
$self->{_r}->pnotes(XX_created_time_XX => $t)
}
else {
$t = $self->{_r}->main->pnotes('XX_created_time_XX');
}
...
}
or somesuch. untested, but you get the idea :)
HTH
--Geoff