#!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”我不会有这种行为。
答案 0 :(得分:7)
Rakudo默认启用autoflush;规范没有提及默认值。
答案 1 :(得分:1)
文档中有关自动刷新的报价:
‘没有全局替代方案。默认情况下,TTY句柄是不缓冲的,对于其他句柄,请将out-buffer设置为零,或使用:!out-buffer在特定的IO :: Handle上打开。’
因此,任何到stdout的打印都是无缓冲的,我想它的行为类似于perl5的自动刷新的stdout。
其他句柄取决于设置的缓冲区外大小。