【发布时间】:2013-09-10 10:50:31
【问题描述】:
除了使用模块 File::Tail(用于从持续更新的文件中读取的 Perl 扩展)o while 循环.. 根据您的说法,实时读取大日志文件的最佳方法是什么?
【问题讨论】:
标签: perl logging real-time tail
除了使用模块 File::Tail(用于从持续更新的文件中读取的 Perl 扩展)o while 循环.. 根据您的说法,实时读取大日志文件的最佳方法是什么?
【问题讨论】:
标签: perl logging real-time tail
读取文件直到eof,休眠一段时间,清除文件句柄上的eof标志,然后再次尝试从中读取,
# open $fh..
while (1) {
while (my $line = <$fh>) {
# $line ...
}
# eof reached on $fh
sleep 1;
# clear eof flag on $fh
seek($fh, 0, 1);
}
您可以使用Time::HiRes 模块缩短sleep
【讨论】:
select undef, undef, undef, $seconds(其中 $seconds 可能是几分之一秒)。