2013-12-16 2 views
-2

Как я могу читать файлы журнала один за другим из каталога, отличного от концепции массива. Я попытался с этой концепцией, но я не отвечал требованиям. Потому что в текущем рабочем каталоге файлы журнала продолжают добавлять к нему. Если я использую концепцию массива, то отсутствуют последние файлы журналов. Есть ли лучшее решение для этого? Ниже кода, что я пробовал, здесь массива содержимое всех файлов каталога.perl как читать файлы один за другим из каталога, отличного от концепции массива?

opendir (DIR, $readDir) || die "Error in opening dir $readDir\n"; 
my @files = grep { !/^\.\.?$/ } readdir DIR; 
print STDERR "files: @files \n\n"; 
+0

Возможно, вы хотите что-то вроде «Файл :: Монитор». – toolic

+1

Почему бы не использовать итератор вместо этого? 'while (my $ file = readdir DIR)' – TLP

+0

Вы говорите, что вам нужен способ получить список файлов в каталоге, но хотите, чтобы они были предоставлены вам по одному, вместо того, чтобы разрывать весь массив сразу? Посмотрите на модуль File :: Next, который делает именно это. –

ответ

-1

Если вы используете Linux,

my $log_content = `cat /log/dir/*.log`; 

Это будет сочетать в себе все содержимое файла журнала, как один.

+2

Это не «чтение файлов по одному». – TLP

+0

@sabuj Я использую окна. Более того, я не хочу комбинировать все файлы журналов, но вам нужно обрабатывать все файлы по отдельности. – ImDrPatil

Смежные вопросы