в Perl,
Как читать несколько файлов одновременно,
генерирует отчет в конце месяца,
в день, создается один файл журнала,
я хочу прочитать файлы за весь месяц,
мой файл выглядит примерно так t.log.mmddyyy
Функция glob позволит вам получить список имен файлов, которые соответствуют определенному шаблону.Если вы загрузите этот список в @ARGV, то сможете обработать все файлы - даже в порядке с одним циклом:
glob
@ARGV
use strict; use warnings; use Getopt::Long; sub usage ($) { my $msg = shift; die <<"END_MSG"; *** $msg Usage: $0 --month=nn --year=nn PATH END_MSG } GetOptions( 'month=i' => \my $month, 'year=i' => \my $year ); usage "Month not specified!" unless $month; usage "Year not specified!" unless $year; usage "Invalid month specified: $month" unless $month > 0 and $month < 13; usage "Invalid year specified: $year" unless $year > 0; my $directory_path = shift; die "'$directory_path' does not exist!" unless -d $directory_path; @ARGV = sort glob( sprintf( "$directory_path/t.log.%02d??%02d", $month, $year )); while ( <> ) { # process all files ... }
вы можете сделать