Search google or groups.google.com for "perl select socket". Adding your connections to the select array is the proper way to go, but you can work out a hack by putting a timeout on the can_read($timeout). See
and BrowerUk's sample code where he has multiple timeouts on reading sockets. The timeouts would let your multiple socket reads act non-blocking.