I was hoping that Perl would turn an 'undef' for $timeout into a NULL pointer and '0' for $timeout into a struct timeval with a 0 value, but I hadn't tested it. One of the comments in the earlier thread Re: Re: Non blocking read on a filehandle indicated it wasn't working then (back in 2001).