Strawberry Perl - 输入文件流问题

问题描述 投票:0回答:1

我有一些 Perl 脚本,可以流式传输输入文件并实时解析它。

在 Strawberry Perl 版本 5.32.1.1 之前它运行良好,但在 5.38.0.1 版本中不再运行。

我写了一个显示问题的基本示例:

#!/usr/bin/perl -w

use strict;
use warnings;
my $IN_STREAM;

open( $IN_STREAM, "<", "file_in.txt" ) or die "Fail to open file_in.txt";

while (1) {
    while ( !($_ = <$IN_STREAM>)) {
        sleep(1);
    }
    print "$_";
}

当我使用版本 5.32.1.1 运行此脚本时,每次更新 file_in.txt 时我都可以看到打印内容。

但在 5.38.0.1 中,未检测到 file_in.txt 中的更新。

有不同的方法来做我想做的事吗?

perl strawberry-perl
1个回答
0
投票

使用File::Tail

my $tail = File::Tail->new( name => "file_in.txt" );

while ( defined( my $line = $tail->read() ) ) {
   print $line;
}
© www.soinside.com 2019 - 2024. All rights reserved.