在Raku中使用get/prompt获取gettig后,如何清除stdin($*IN)上的EOF?

在我的程序中,我想从$*IN循环中读取一行,为此我可以使用getprompt; 但是,我注意到如果我立即用 EOF 结束我的输入(例如,在 Linux/MacOS 中用 Ctrl-D),那么任何后续使用getprompt读取另一行 from$*IN都会导致它返回Nil,这意味着它仍然从$*IN.

例子:

dd get;
dd get;

使用立即 EOF (ctrl-d),程序结束并输出 2 Nil

如果输入的内容不仅仅是 EOF,则不会发生此问题。

奇怪的是,这个问题也不会发生在slurp. IE,

dd slurp;
dd slurp;

在第一个 ctrl-d 之后,""由第一个打印dd,然后由于第二个而等待输入slurp

我认为这也是他们同样的问题 - https://github.com/rakudo/rakudo/issues/4196

以上是在Raku中使用get/prompt获取gettig后,如何清除stdin($*IN)上的EOF?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>