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;