in reply to HTTP Unblessed reference question
$r = HTTP::Request->new($method, $uri, $header, content)
Constructs a new "HTTP::Request" object describing a request on the object "$uri" using method "$method". The "$uri" argument can be either a string, or a reference to a "URI" object. The optional $header argument should be a reference to an "HTTP::Headers" object. The optional $content argument should be a string.
Your third argument is an array reference, not an HTTP::Headers object. I think you wanted to use HTTP::Request::Common; that uses that syntax.
Update: Briefly had a "You might try" section, but removed it after realizing that the array did not appear to contain HTTP headers.
Update 2: Added recommendation for HTTP::Request::Common