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 替换为您想要的任何数字。