写入标准输出

时间:2014-01-07 21:28:06

标签: perl

我有一个perl进程,每天自动运行,需要大约20分钟芬兰语并将每个操作打印到stdout worht提到每个操作大约需要秒。

有时似乎stdout被卡住了,我需要点击回车才能让流程继续运行。

有人会遇到这样的问题/建议如何处理这个问题吗?

在我的代码快照下面:

foreach (<>) {
    chomp;
    if (validate($_) == 0) {
        print "$_ validated with Success\n";
    }
    else {
        print "$_ validated with failure\n";
    }
}

1 个答案:

答案 0 :(得分:1)

正如Bill Ruppert所写,您需要使用while (<>)而不是foreach (<>),以便在读取每行输入后允许print语句执行。

正如Joop Eggen所写,您需要确保标准输出不是以块为单位写入的,以确保在发出print语句后立即显示每行输出。这可以通过设置$|变量来完成。

相关问题