Since the log files are sorted, there's no reason to have more than two handles open.
while (my $logfile = glob('access-????.log')) { open(my $logfile_fh, '<', $logfile) or die("Unable to open yearly logfile $logfile: $!\n"); my ($year) = $logfile =~ /^access-(....)\.log$/; my $output_fh; my $month = -1; while (<$logfile_fh>) { # Extract month of log entry. my ($new_month) = /$year-(..)/; if ($new_month != $month) { $month = $new_month; my $output_file = sprintf('access-%04d-%02d.log', $year, $mon +th); open($output_fh, '>', $output_file) or die("Unable to create monthly logfile $output_file: $!\ +n"); } print $output_fh $_; } }
In reply to Re: Opine on multiple open filehandles vs. multiple loops through data
by ikegami
in thread Opine on multiple open filehandles vs. multiple loops through data
by aboyd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |