就这么简单,如何在Perl6中读取STDIN的输入?
我认为有很多方法可以做到这一点,但我对最惯用的Perl6解决方案很感兴趣。
答案 0 :(得分:7)
Perl6中的标准输入文件描述符是$*IN
(在Perl5中,*STDIN
typeglob对STDIN文件描述符的引用为*STDIN{IO}
)。
从标准输入读取的一种方法如下:
for lines() {
say "Read: ", $_
}
事实上,没有调用对象的lines()
默认为$*IN.lines()
。
使用局部变量的替代方法是:
for $*IN.lines() -> $line {
say "Read: ", $line
}
看到更多的替代方法会很酷。
答案 1 :(得分:6)
您也可以使用不带参数的slurp
来覆盖整个标准输入。此代码将覆盖整个输入并打印出来。
print slurp;
如果你想获得行,你可以使用lines()
迭代器,就像Perl 5中的<>
一样工作。请注意,与Perl 5不同,它会自动选择行。
for lines() {
say $_;
}
如果您想获得单行,而不是使用lines()
迭代器,则可以使用get
。
say get();
如果您需要询问用户某事,请使用prompt()
。
my $name = prompt "Who are you? ";
say "Hi, $name.";