package WWW::Mechanize::Mason; use strict; use HTTP::Status qw/RC_OK RC_NOT_FOUND/; use base 'WWW::Mechanize'; # we can make it work by also inheriting from Clone sub _make_request { my ($self,$request,@rest) = @_; my $uri = $request->uri->as_string; my $response_content = "foobar\n"; # we'll probably have to build in support for redirects at some point my $response = HTTP::Response->new( defined $response_content ? RC_OK : RC_NOT_FOUND, ); $response->request($request); $response->push_header('Content-Type', 'text/html'); $response->content($response_content); return $response; } package main; my $browser = WWW::Mechanize::Mason->new; $browser->get('/TEST/mason.txt'); print $browser->content; $browser->get('/TEST/mason.txt'); print $browser->content;