11

就这么简单,如何在 Perl6 中从 STDIN 读取输入?

我认为有很多方法可以做到这一点,但我对最惯用的 Perl6 解决方案感兴趣。

4

2 回答 2

11

Perl6 中的标准输入文件描述符是$*IN(在 Perl5 中,*STDINtypeglob 对 STDIN 文件描述符的引用为*STDIN{IO})。

从标准输入读取的一种方法如下:

for lines() {
    say "Read: ", $_
}

事实上,lines()没有调用对象默认为$*IN.lines().

使用局部变量的另一种方法是:

for $*IN.lines() -> $line {
    say "Read: ", $line
}

看到更多替代方法会很酷。

于 2012-12-15T15:15:34.253 回答
10

您还可以使用slurp不带参数的方式 slurp 整个标准输入。此代码将吞下整个输入并打印出来。

print slurp;

如果你想得到行,你可以使用lines()迭代器,就像<>在 Perl 5 中一样。请注意,与 Perl 5 不同的是,它会自动 chomps 行。

for lines() {
    say $_;
}

当您想获得单行时lines(),可以使用get.

say get();

如果您需要向用户询问某事,请使用prompt().

my $name = prompt "Who are you? ";
say "Hi, $name.";
于 2012-12-17T20:54:17.337 回答