in reply to changing object's methods at runtime

my $req = Apache::FakeRequest( uri='/foo/bar', is_main=>1...); *Apache::FakeRequest::request_uri = sub{ #gen the uri here };

This should generate a warning

Subroutine Apache::FakeRequest::request_uri redefined at...

Which is your indication that it worked and only affects the FakeRequests not the real ones.