それと同じくらい簡単ですが、Perl6でSTDINからの入力を読み取るにはどうすればよいですか?
それを行うには多くの方法があると思いますが、私は最も慣用的なPerl6ソリューションに興味があります。
Perl6の標準の入力ファイル記述子は次のとおりです$*IN
(Perl5では、typeglobは*STDIN
STDINファイル記述子への参照をとして持っていました*STDIN{IO}
)。
標準入力から読み取る1つの方法は、次のとおりです。
for lines() {
say "Read: ", $_
}
実際、lines()
呼び出し元オブジェクトがない場合、デフォルトで。になり$*IN.lines()
ます。
ローカル変数を使用する別の方法は次のとおりです。
for $*IN.lines() -> $line {
say "Read: ", $line
}
それを行うためのより多くの代替方法を見るのはクールだろう。
slurp
引数なしで標準入力全体を丸呑みすることもできます。このコードは、入力全体を丸呑みして印刷します。
print slurp;
行を取得したい場合は、Perl 5lines()
のように機能するイテレータを使用できます。Perl5とは異なり、行を自動的に切り刻むことに注意してください。<>
for lines() {
say $_;
}
単一行を取得する場合は、イテレータを使用する代わりに、を使用lines()
できますget
。
say get();
ユーザーに何かについて尋ねる必要がある場合は、を使用してprompt()
ください。
my $name = prompt "Who are you? ";
say "Hi, $name.";