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» я не получаю такого поведения.


person sid_com    schedule 20.02.2011    source источник
comment
Похоже, что мир изменился за последние шесть лет.   -  person brian d foy    schedule 08.07.2017
comment
Rakudo не поддерживает автозапуск. В 5to6-perlvar под записью $OUTPUT_AUTOFLUSH есть примечание.   -  person brian d foy    schedule 10.07.2017
comment
Какое поведение? И обратите внимание, что unbuffered! = Autoflush ... Никто, кто задавал или отвечал на какие-либо вопросы SO об автозапуске, ни люди из Rakudo, похоже, не понимают этого.   -  person Jim Balter    schedule 01.09.2019


Ответы (2)


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

person moritz    schedule 20.02.2011
comment
Rakudo не поддерживает автозапуск. В 5to6-perlvar под записью $OUTPUT_AUTOFLUSH есть примечание. - person brian d foy; 10.07.2017

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

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

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

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

person drclaw    schedule 30.03.2019
comment
без буферизации - это не то же самое, что и автозапуск. Никто из тех, кто ответил на какие-либо вопросы об автозапуске, ни люди из Rakudo, похоже, не понимают этого. - person Jim Balter; 01.09.2019