I don't think this really matters, but you could try coding the socket the long way (no IO::Socket::INET) on the off chance that something is goofed there. You might also try closing the send connection with shutdown() before attempting to read on the chance that it might clear something.
Comment on Re^2: IO::Socket hanging in ActivePerl 5.8.8