在Raku中使用get/prompt获取gettig后,如何清除stdin($*IN)上的EOF?
在我的程序中,我想从$*IN循环中读取一行,为此我可以使用get或prompt; 但是,我注意到如果我立即用 EOF 结束我的输入(例如,在 Linux/MacOS 中用 Ctrl-D),那么任何后续使用get或prompt读取另一行 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
THE END
二维码