while (keys %fh) { foreach my $fh (keys %fh) { if (defined(my $line = <$fh>)) { chomp $line; print $line; } else { close($fh); delete($fh{$fh}); } } }