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.
Другие дескрипторы зависят от установленного размера внешнего буфера.