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

How to make a Perl 6 script exit on Ctrl+D input?

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

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

我对 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 运算符,循环将在空输入时终止。)

带小帮手子:

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

那么你可以将你的循环写成:

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