Tailing 已经在 Perl 中打开文件
Tailing already opened file in Perl
我有一个子进程动态地向文件写入一些信息。有时我需要获取此文件最后几行的 N
行数。但是当父进程正在读取文件时,子进程将继续写入它。
我读过锁定和解锁没有意义,但我不确定。我不会从父进程写任何东西,所以我只需要打开它来阅读。
我找到了模块 File::Tail
,但不明白如何使用它来获取最后几行的 N
行数,请提供一些简单的示例。
我还需要建议在这种情况下是否有必要使用锁定?
要读取文件的最后 N
行,您可以使用 CPAN 模块 File::ReadBackwards
。
use File::ReadBackwards;
my $lastlines = File::ReadBackwards->new("file.txt");
print reverse map { $lastlines->readline() } (1 .. 2);
这将打印文件的最后两行。将 2 替换为您想要的任何数字。
我有一个子进程动态地向文件写入一些信息。有时我需要获取此文件最后几行的 N
行数。但是当父进程正在读取文件时,子进程将继续写入它。
我读过锁定和解锁没有意义,但我不确定。我不会从父进程写任何东西,所以我只需要打开它来阅读。
我找到了模块 File::Tail
,但不明白如何使用它来获取最后几行的 N
行数,请提供一些简单的示例。
我还需要建议在这种情况下是否有必要使用锁定?
要读取文件的最后 N
行,您可以使用 CPAN 模块 File::ReadBackwards
。
use File::ReadBackwards;
my $lastlines = File::ReadBackwards->new("file.txt");
print reverse map { $lastlines->readline() } (1 .. 2);
这将打印文件的最后两行。将 2 替换为您想要的任何数字。