http://www.perlmonks.org?node_id=236220


in reply to SELECT help...

$selectFD = new IO::Select($rec[$RXThreadNumber], undef, undef, 1);
The immediate problem I can see with your code is the above call. The constructor for IO::Select doesn't take the same parameters as the select function. It takes a list of handles. Check the IO::Select pod for more information. This means that your timeout isn't begin set properly, and you experience the symptoms of this.
$|++; # flush the buffer apparently...
If you want to know more about how this works, you need to read the perlvar pod. If you use the IO::Handle classes for your filehandles you can use their autoflush method to make this nicer.

--
integral, resident of freenode's #perl