Geoffrey Young wrote:
>> sub handler : method {
>> my ($self,$r) = @_;
>> $self = $self->new unless ref $self;
>> $self->{r} = $r;
>> }
>>
>> When exactly is this ref used? AFAIK $_[0] will never be a reference.
> it will when you use the :method attribute :)
> in short, it's magic - run the handler and you'll see that $r is _not_ the
> first argument to that handler, but the second.
That I understand ($r being the second argument). I was trying to come up
with a case where $self is a reference. All my examples I coded use the
$self->new because $self is never a reference, ie:
sub handler : method {
my ($self, $r) = @_;
if(ref $self) {
warn "self was a ref to: $self";
} else {
warn "self was not a ref, creating new";
$self = $self->new;
}
}
And I've never seen a situation where 'self was a ref'
could you please enlighten me.
> --Geoff
--
kind regards,
Tim Essselens