loop {
my $word = prompt '> ' ;
say $word;
}
Run Code Online (Sandbox Code Playgroud)
什么是正确的方法,exit如果/当而不是打印一个单词我按Ctrl + D?
我对Perl 6的熟悉程度不如Perl 5,但Perl 5方法似乎有效:
loop {
my $word = prompt '> ' ;
last if not defined $word;
say $word;
}
Run Code Online (Sandbox Code Playgroud)
这可能更惯用:
while (defined my $word = prompt '> ') {
say $word;
}
Run Code Online (Sandbox Code Playgroud)
(如果没有defined运算符,循环将在空输入处终止.)
有一个小助手子:
sub not-done(\value) {
value but True if value.defined
}
Run Code Online (Sandbox Code Playgroud)
然后你可以把你的循环写成:
while not-done prompt("> ") -> $word {
say $word
}
Run Code Online (Sandbox Code Playgroud)