11

それと同じくらい簡単ですが、Perl6でSTDINからの入力を読み取るにはどうすればよいですか

それを行うには多くの方法があると思いますが、私は最も慣用的なPerl6ソリューションに興味があります。

4

2 に答える 2

11

Perl6の標準の入力ファイル記述子は次のとおりです$*IN(Perl5では、typeglobは*STDINSTDINファイル記述子への参照をとして持っていました*STDIN{IO})。

標準入力から読み取る1つの方法は、次のとおりです。

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

実際、lines()呼び出し元オブジェクトがない場合、デフォルトで。になり$*IN.lines()ます。

ローカル変数を使用する別の方法は次のとおりです。

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

それを行うためのより多くの代替方法を見るのはクールだろう。

于 2012-12-15T15:15:34.253 に答える
10

slurp引数なしで標準入力全体を丸呑みすることもできます。このコードは、入力全体を丸呑みして印刷します。

print slurp;

行を取得したい場合は、Perl 5lines()のように機能するイテレータを使用できます。Perl5とは異なり、行を自動的に切り刻むことに注意してください。<>

for lines() {
    say $_;
}

単一行を取得する場合は、イテレータを使用する代わりに、を使用lines()できますget

say get();

ユーザーに何かについて尋ねる必要がある場合は、を使用してprompt()ください。

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