in reply to IO::Select->can_read isn't recognising closed INET connections

ptdkb++. Also, you should be checking the error-condition (out-of-band data) on your sockets. So instead of just using $sel->can_read, try checking:
my (undef, $can_read, $has_error) = $sel->select(undef, undef, undef); foreach my $fh (@$can_read) { ... } foreach my $fh (@$has_error) { ... }

------------
:Wq
Not an editor command: Wq