Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Perl显示服务器上不断更新的文件行?_Perl - Fatal编程技术网

如何用Perl显示服务器上不断更新的文件行?

如何用Perl显示服务器上不断更新的文件行?,perl,Perl,我试图显示持续更新的文件的更新。此文件是从服务器访问的,每次文件中有更新时都必须打印。这是我迄今为止成功构建的代码: open(FH,'<','log_file.txt') or die $!; # open file for (;;) { while (my $row = <FH>) { chomp $row; print "$row\n"; } sleep 1; seek FH, 0, 1; } open(FH),不要试图

我试图显示持续更新的文件的更新。此文件是从服务器访问的,每次文件中有更新时都必须打印。这是我迄今为止成功构建的代码:

open(FH,'<','log_file.txt') or die $!;  # open file
for (;;) {
    while (my $row = <FH>) {
    chomp $row;
    print "$row\n";
    }
    sleep 1;
    seek FH, 0, 1;
}

open(FH),不要试图重新发明轮子;使用


与您的不同,它不会返回部分行,它会检测日志文件的旋转等。

不要尝试重新发明轮子,请使用


与您的不同,它不会返回部分行,它会检测日志文件的旋转等。

。您确定文件正在更新吗?请尝试显示
-s“log\u file.txt”
搜索后。更新文件的过程可能正在缓冲其输出。您知道访问该行并对该行中的数据执行某些操作的方法吗?现有行是否已更新,还是在末尾添加了唯一的更改新行?我不想在睡眠前关闭文件,然后在while解决问题之前重新打开它问题。文件可能未更新,但已完全重写。现有行未更新,唯一的更新是添加我尝试访问的新行并对其执行操作。是否确实正在更新文件?请尝试显示
-s“log\u file.txt”
搜索后。更新文件的过程可能正在缓冲其输出。您知道访问该行并对该行中的数据执行某些操作的方法吗?现有行是否已更新,还是在末尾添加了唯一的更改新行?我不想在睡眠前关闭文件,然后在while解决问题之前重新打开它问题。文件可能未更新,但已完全重写。现有行未更新,唯一的更新是添加我尝试访问的新行,并对其执行操作。
use File::Tail qw( );

my $tail = File::Tail->new('log_file.txt');
while (defined( my $line = $file->read() )) {
  print($line);
}