http://qs321.pair.com?node_id=1180873


in reply to Re^2: IPV6 Errors with IO::Socket
in thread IPV6 Errors with IO::Socket

Grepping both IO::Socket 1.31 and IO::Socket 1.36 for "INET6" yields no results for me.

Can you show us a short program that reproduces your problem and shows that IO::Socket loads IO:;:Socket::INET6?

#!perl -w use strict; use Data::Dumper; use IO::Socket; # whatever you need to do to make the error message/warning show up in + INET6.pm print Dumper \%INC;

Of course, you can always try to rename IO/Socket/INET6.pm ;)

Replies are listed 'Best First'.
Re^4: IPV6 Errors with IO::Socket
by jZed (Prior) on Feb 02, 2017 at 22:51 UTC
    OK, thanks old friend, your question prompted me to look at what calls what and here's the deal: XML::Feed calls LWP::UserAgent which, in the case of https searches, calls IO::Socket::SSL which calls IO::Socket::INET6 unless it's told not to or it can't find IO::Socket::INET6 in which case it uses IO::Socket:INET which is what I apparently want. So I need to figure out how I can tell it that from up before I call XML::Feed. So I tried removing IO::Socket::INET6 from @INC in a BEGIN block, but I still get the errors ... will report back as I find out more.

      Looking at the documentation of IO::Socket::SSL, it says

      Alternatively you can enforce IPv4 globally by loading IO::Socket::SSL with the option 'inet4', in which case it will use the IPv4 only class IO::Socket::INET as the super class.

      So, maybe the following works:

      #!perl -w use strict; use IO::Socket::SSL 'inet4'; use XML::Feed;

      (I only knew to look there from having seen a presentation by noxxi on this topic)

        Sweet! Seven runs with no errs so far. I think that is exactly what I needed.