The way I've dealt with the problem [1] is by requiring
IO::Socket::INET6 first, while still allowing the code to fall
back to IO::Socket::INET. (Just like Net::HTTP already falls
back to IO::Socket if IO::Socket::INET is itself unavailable.)
The patch I'm using is MIME'd.
[1] http://permalink.gmane.org/gmane.comp.lang.perl.modules.lwp/2556
--
FSF associate member #7257
--- HTTP.pm.~1~ 2012-02-17 03:17:26.000000000 +0700
+++ HTTP.pm 2012-03-27 17:05:37.000000000 +0700
@@ -5,8 +5,13 @@
$VERSION = "6.03";
unless ($SOCKET_CLASS) {
- eval { require IO::Socket::INET } || require IO::Socket;
- $SOCKET_CLASS = "IO::Socket::INET";
+ if (eval { require IO::Socket::INET6 }) {
+ $SOCKET_CLASS = "IO::Socket::INET6";
+ } else {
+ eval { require IO::Socket::INET }
+ || require IO::Socket;
+ $SOCKET_CLASS = "IO::Socket::INET";
+ }
}
require Net::HTTP::Methods;
require Carp;