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

ivanatora has asked for the wisdom of the Perl Monks concerning the following question:

I use IO::Socket for making a connection to TCP server. I want that connection to be non-blocking and I try to use IO::Select for that purpose. However, I have only one socket, and I use mainly the can_read() method, so if nothing comes from the socket, the conn will be non-blocking, untill something come. Here is the way I do:
my $sock = ... my $sel = IO::Select->new(); $sel->add($sock); while (1){ if ($sel->can_read(0.5)){ $line = <$socket>; print $line; } else { print "."; } } #end of while 1
In that way I thing that if nothing comes, I should get a row of dots printed. If something comes it should get printed instead of a dot.
Whatever.. nothing happens. Any ideas?