while (!eof( $fd )) { chomp( my $data = <$fd> ); if ($data) { push @results, [ split ":", $data ]; } else { # Other side (child) has closed connection. $file_iter->remove($_); close $fd; # Closing fd cleans up child } } sleep 10;