为什么使用File :: Tail模块的Perl脚本不起作用?

时间:2010-12-20 22:00:50

标签: perl

我正在使用一个简单的Perl脚本来监视使用File::Tail模块的日志文件,但我似乎无法让模块正常工作。

这个想法是在IRC上使用它,但是这似乎没有用,所以在修改了交互式解释器之后我将问题缩小到了File :: Tail。我已经将它剪切下面的基本示例来监视文件,当新条目附加到文件时没有任何反应:

#!/usr/bin/perl -w

use strict;

use File::Tail;

my $file = File::Tail->new("/var/log/apache2/error.log");

while(defined(my $line = $file->read))
{
    print "$line\n";
}

有谁可以提出问题可能是什么?我已经浏览了perldoc条目,这实际上是从那里复制的,所以我不能真正看到我犯了任何明显的错误。我正在运行Ubuntu Lucid。

3 个答案:

答案 0 :(得分:2)

这可能是权限错误吗?您运行脚本的用户可以访问/var/log/apache2/error.log吗?

答案 1 :(得分:0)

如果所有其他方法都失败了,请自行实施!

use Fcntl qw(:seek);

while (1) {
    while (<$fh>) {
        ...
    }
    sleep(1);
    seek $fh, 0, SEEK_CUR;
}

...如果我只是将herehere与您联系,我就不必输入。

答案 2 :(得分:0)

我刚刚意识到我是一个完整的工具......

它完美无缺 - 我只是在按下Ctrl-C之前没有留足够长的时间。 D'哦!嗯,经验教训!无论如何,谢谢你的帮助!