是否可以在Perl中使用单个文件句柄读取多个文件?

时间:2010-03-29 09:37:11

标签: perl filehandle

我有几个这样的日志文件:

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

是否可以将所有这些文件加载​​到一个文件句柄中,还是需要分别加载它们?

3 个答案:

答案 0 :(得分:5)

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

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

while(<>) {
    # do something with $_;
}

答案 1 :(得分:1)

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

答案 2 :(得分:1)

对每个文件使用不同的文件句柄做同样的事情并不是非常困难:

foreach my $file ( @ARGV )
    {
    open my($fh), '<', $file or do { warn '...'; next };
    while( <$fh> )
         {
         ...
         }
    }