Иногда в Perl я пишу цикл for
/ foreach
, который перебирает значения для проверки значения по списку.После первого попадания цикл может завершиться, так как мы выполнили условия моего теста.Например, этот простой код:
my @animals = qw/cat dog horse/;
foreach my $animal (@animals)
{
if ($input eq $animal)
{
print "Ah, yes, an $input is an animal!\n";
last;
}
}
# <-----
Есть ли элегантный способ - может быть, перегруженное ключевое слово - обрабатывать "для цикла, достигшего последнего элемента"?Что-то, что можно поместить на стрелке выше?
Я могу придумать способы сделать это, например, создать / установить дополнительную переменную $found
и протестировать ее в конце .... Но я надеялся, что Perl мог бы иметьчто-то еще встроенное, например:
foreach my $animal (@animals)
{
if ($input eq $animal)
{
print "Ah, yes, an $input is an animal!\n";
last;
}
} finally {
print "Sorry, I'm not sure if $input is an animal or not\n";
}
, что сделало бы этот тест более интуитивным.