我在Perl中找到了有关autoflushing的各种信息,但是找不到任何一个格式如下的行:
STDOUT->autoflush(1);
这包含在我正在分析的程序中,我想更好地理解它的作用。在该计划的开头还有这个:
use IO::Handle;
......我认为可能与此有关,但它的文档中也没有提到这种方法。
答案 0 :(得分:4)
您注意到的IO::Handle中列出的 方法
... $io->autoflush ( [BOOL] ) $| ...
设置/取消设置$|
,然后将您转到$|
in perlvar进行解释
如果设置为非零,则在当前所选输出通道上的每次写入或打印后立即强制刷新。
As of v5.14您无需use IO::Handle
,因为IO::File在需要时为require
。
这种方法的特殊之处在于,即使没有提供值,它也会启动自动闪存,
$io->autoflush; # turned on ($| gets set)
而其他相关的(参见docs)在没有参数的情况下调用时不会更改当前值。