in reply to IO::Socket::INET slower than the LWP::UserAgent how so many?
You told it to keep the connection alive, and then tried to read until EOF (when the connection closes). That's not a good combination.
You can either do Connection: close instead of keeping it alive, or you can do what LWP is doing and parse out the Content-Length header and only read that many bytes.
In Section
Seekers of Perl Wisdom