I was using Net::FTP and ran into a problem. None of the FTP sites I was trying to connect to would return a connection. Net::FTP (which subclasses IO::Socket) was returning a timeout (despite the fact that I could get to any and all FTP sites very quickly). Net::FTP defaults to a Timeout of 120 on those connections, and it was returning almost immediately, it seemed.
I tried passing in an explicity Timeout of 0 and sure enough, things connected as expected. Apparently, this is related to IO::Socket::INET as I could reproduce the behavior there.
Did something change in this module. Apparently, if I have any Timeout value specified, the socket times out, but if I explicitly pass in a 0 value or don't pass in a Timeout value at all, things work as they should. Is Timeout a boolean (the IO::Socket::INET manpage just says 'Timeout value for various operations', which I assume would be seconds (as do almost every other module that I use).
For some more information, this a fresh build of perl 5.6.0 on a RedHat 7.0-based i586 Linux install (kernel 2.2.18). Compilation is done using gcc 2.96 20000731.