Perl 6 在 Parrot 时代有几个答案,但它们目前似乎不起作用:
这是基于 MoarVM 版本 2017.04-53-g66c6dda 实现 Perl 6.c 的 Rakudo 版本 2017.04.3。
perl6是否默认启用“autoflush”的答案?说它默认启用(但那是 2011 年)。
这是我正在玩的一个程序:
$*ERR.say: "1. This is an error";
$*OUT.say: "2. This is standard out";
以及它的输出,这是一个不幸的命令:
2. This is standard out
1. This is an error
所以也许我需要打开它。有我如何禁用自动刷新?其中提到了一种autoflush
方法:
$*ERR.autoflush = True;
$*ERR.say: "1. This is an error";
$*OUT.say: "2. This is standard out";
但这不起作用:
'IO::Handle' 类型的调用者没有这样的方法 'autoflush'
我想我可以通过让我的 IO 类在每次输出后刷新来自己伪造这个。就其价值而言,正是缺少此功能使我无法将 Perl 6 用于今天的特定任务。
作为第二个问题,为什么 Perl 6 现在没有这个,尤其是当它看起来像以前有的时候?你如何说服 Perl 5 的人这不是问题?