如何在Ctrl + D输入上退出Perl 6脚本?

时间:2017-12-12 19:45:22

标签: perl6

loop {
  my $word = prompt '> ' ;
  say $word;
}

正确的方法exit if / when而不是打印单词我按Ctrl + D?

2 个答案:

答案 0 :(得分:7)

我对Perl 6的熟悉程度不如Perl 5,但Perl 5方法似乎有效:

loop {
  my $word = prompt '> ' ; 
  last if not defined $word;
  say $word;
}

这可能更惯用:

while (defined my $word = prompt '> ') {
    say $word;
}

(如果没有defined运算符,循环将在空输入上终止。)

答案 1 :(得分:4)

带一个小助手子:

sub not-done(\value) {
    value but True if value.defined
}

然后你可以把你的循环写成:

while not-done prompt("> ") -> $word {
    say $word
}