Я добавил следующую строку в код перед LWP :: UserAgent-> new, и, похоже, он работает для меня (в linux).
$r->uri("http://" . $r->header('Host') . "/" . $r->uri());
У URI, который вы получили из объекта HTTP :: Request из исходного запроса, нет имени хоста. Так что добавил это, чтобы сделать его абсолютным URI. Проверено следующим образом:
$ curl -D - -o /dev/null -s -H 'Host: www.yahoo.com' http://localhost:8080/
HTTP/1.1 200 OK
Date: Thu, 27 Jan 2011 12:59:56 GMT
Server: libwww-perl-daemon/5.827
Cache-Control: private
Connection: close
Date: Thu, 27 Jan 2011 12:57:15 GMT
Age: 0
---snip--
ОБНОВЛЕНИЕ: Похоже, я был совершенно не прав. Мне не нужно было вносить изменения в объект URI. Ваш оригинальный код работал для меня так же, как в Linux