perl6/rakudo: Perl6 по умолчанию включает "автозапуск"?

#!perl6
use v6;

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

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

for @a {
    sleep 0.3; 
    .print;
}

Включает ли perl6 "автозапуск" по умолчанию. С perl5 без включения "outflush" я не получаю такого поведения.

1 ответ

Решение

Rakudo включает автозапуск по умолчанию; В спецификации ничего не сказано о умолчанию.

Цитата из документации относительно автоматической очистки:

"Нет глобальной альтернативы. Дескрипторы TTY по умолчанию не буферизированы, для других установите out-buffer на ноль или используйте:! Out-buffer с open для определенного IO::Handle. '

Таким образом, любая печать в stdout не буферизируется, и я думаю, что она будет вести себя подобно auto flush stdout в perl5.

Другие дескрипторы зависят от установленного размера внешнего буфера.

Другие вопросы по тегам