while (my @ready = $s->can_read()) { my $buff; my $res = sysread($fh, $buff, 4294967296); if ($res > 0) { $results{$host} .= $buff; } elsif (defined $res) { delete $results{$fh} if ( $res == 0); } else { # $res is undef, so tell our user about the error print "Something broke!\n"; } }