写入文件句柄不适用于睡眠

时间:2014-01-28 04:00:42

标签: perl while-loop sleep filehandle

当我突然意识到我无法写入文件时,我正在处理脚本。

我已经能够了解这段代码:

use strict;
use warnings;

open(my $out, '>>', 'log.txt') or die "$!";
print $out "test";

while(1){
    sleep 1;
}

我尝试通过设置$ |来取消缓冲= 1。

我正在制作一个每10分钟运行一次的程序,所以我在睡觉时等待10分钟。

1 个答案:

答案 0 :(得分:3)

除非您在选择$|时将$out设置为1,否则您没有做任何事情。

如果你的perl非古老,请写

$out->autoflush(1);

如果您的perl很古老,请写

my $prev = select($out);
$| = 1;
select($prev);