http://qs321.pair.com?node_id=259686

ViceRaid has asked for the wisdom of the Perl Monks concerning the following question:

Morning

I'm using the Apache::FakeRequest module to exercise some mod_perl handlers. In my test script, the FakeRequest is set up with some parameters:

my $req = Apache::FakeRequest->('uri' => '/foo/bar', 'is_main' => 1, ... );

This is all good. However, how the Apache::FakeRequest works is to return the set values when the method's called without arguments, and to set the named value to the passed value when the method is called with arguments. All good, but there's one method, $req->lookup_uri where I don't want this behaviour. I'd like to supply my own anonymous sub to handle calls to this method.

However, I'm a bit stuck. How can I change the definition of this method on this object only, at runtime, after the instance's creation? Perl keeps giving me an error I don't understand: "Can't modify non-lvalue subroutine call at..."

With thanks
Alex