Можно ли читать несколько файлов с помощью одного дескриптора файла в Perl? - PullRequest
2 голосов
/ 29 марта 2010

У меня есть несколько таких файлов журналов:

  • / вар / журнал / pureftpd.log
  • / вар / Журнал / pureftpd.log-20100328
  • / вар / Журнал / pureftpd.log-20100322

Можно ли загрузить их все в один файловый дескриптор или мне нужно будет загружать каждый из них отдельно?

Ответы [ 3 ]

5 голосов
/ 29 марта 2010

Один уродливый хак будет такой:

local @ARGV = qw(
    /var/log/pureftpd.log 
    /var/log/pureftpd.log-20100328 
    /var/log/pureftpd.log-20100322
);

while(<>) {
    # do something with $_;
}
1 голос
/ 30 марта 2010

Не очень сложно сделать одно и то же с другим файловым дескриптором для каждого файла:

foreach my $file ( @ARGV )
    {
    open my($fh), '<', $file or do { warn '...'; next };
    while( <$fh> )
         {
         ...
         }
    }
1 голос
/ 29 марта 2010

Вы можете использовать каналы для виртуального объединения этих файлов в один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...