#!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”我不会得到这种行为。
Rakudo默认启用autoflush;规范没有提到默认值。
引用自动刷新的文档:
'没有全球替代品。默认情况下,TTY句柄是无缓冲的,对于其他句柄,将缓冲区设置为零或使用:!out-buffer with open on a specific IO :: Handle。
所以对stdout的任何打印都是无缓冲的,我猜它的行为类似于自动刷新的perl5标准输出。
其他句柄取决于out-buffer size set。