perl6 / rakudo:perl6默认启用“autoflush”吗?

时间:2011-02-20 08:54:06

标签: stdout perl6 autoflush rakudo-star

#!perl6
use v6;

my $message = "\nHello!\n\nSleep\nTest\n\n";

my @a = $message.split( '' );

for @a {
    sleep 0.3; 
    .print;
}

perl6默认启用“autoflush”。使用perl5而不启用“outflush”我不会有这种行为。

2 个答案:

答案 0 :(得分:7)

Rakudo默认启用autoflush;规范没有提及默认值。

答案 1 :(得分:1)

文档中有关自动刷新的报价:

‘没有全局替代方案。默认情况下,TTY句柄是不缓冲的,对于其他句柄,请将out-buffer设置为零,或使用:!out-buffer在特定的IO :: Handle上打开。’

因此,任何到stdout的打印都是无缓冲的,我想它的行为类似于perl5的自动刷新的stdout。

其他句柄取决于设置的缓冲区外大小。