Your question has been answered but I have a couple comments about style. First, "indirect object" syntax for method calls is best avoided. Consider writing these alternatives for your current syntax:
my $agent = LWP::UserAgent->new( timeout => 30 );
# ...
my $response = HTTP::Request->new( GET => $site );
Second, it doesn't really make sense to call your new HTTP::Request object
$response. It is, afterall, a request object and not a response object. Why not call it
$request? I have a feeling that you did it just so
my $page = $agent->request($response) would read like English but I don't think that's worth the potential confusion. It might read like English, but it doesn't read like code. It's even more confusing once you realize that the
request() method returns an HTTP::Response object. I'd write that like this:
my $get = HTTP::Request->new( GET => $site );
# ...
my $response = $agent->request( $get );
-sauoq
"My two cents aren't worth a dime.";