loop {
my $word = prompt '> ' ;
say $word;
}
Как правильно сделать exit
, если/когда вместо вывода слова я нажму Ctrl+D?
loop {
my $word = prompt '> ' ;
say $word;
}
Как правильно сделать exit
, если/когда вместо вывода слова я нажму 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
цикл завершится на пустом вводе.)
unless defined
эквивалентно if not defined
. Лично мне форма if not
кажется более понятной.
- person Keith Thompson; 12.12.2017
С небольшим помощником:
sub not-done(\value) {
value but True if value.defined
}
Затем вы можете просто написать свой цикл как:
while not-done prompt("> ") -> $word {
say $word
}