2

我有一些这样的日志文件:

  • /var/log/pureftpd.log
  • /var/log/pureftpd.log-20100328
  • /var/log/pureftpd.log-20100322

是否可以将它们全部加载到一个文件句柄中,还是我需要分别加载它们?

4

3 回答 3

5

一个丑陋的黑客是这样的:

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

while(<>) {
    # do something with $_;
}
于 2010-03-29T09:47:47.073 回答
1

您可以使用管道将这些文件虚拟地连接到一个文件中。

于 2010-03-29T09:40:35.280 回答
1

为每个文件使用不同的文件句柄来做同样的事情并不难:

foreach my $file ( @ARGV )
    {
    open my($fh), '<', $file or do { warn '...'; next };
    while( <$fh> )
         {
         ...
         }
    }
于 2010-03-29T20:14:33.030 回答