В части спецификации говорится: «Некоторые имена особенные, например, Хьюи, Дьюи, Луи и Дональд. Другие имена могут быть добавлены в любое время в течение срока службы проекта. Каждый раз, когда вы вводите одно из этих имен, воспроизводите quack.wav. "
Я мог написать ...
while (<>) {
if ($_ =~ /Hughie|Dewey|Louis/) {
quack() ;
}
elsif ($_ =~ /Donald/ {
quack() ;
you_re_fired_apprentice() ; # Easter egg don't tell QA
}
}
... но, несмотря на отсутствие налога на реализацию, он выглядит WTF-y: Где двоичный поиск? Что, если бы произошло внезапное колоссальное увеличение количества имен уток? Оно вообще не будет масштабироваться!
Я мог бы создать пустые файлы, используя эти имена во временном каталоге, а затем использовать API "файл существует", но это кажется окольным путём, и я должен был убедиться, что они были удалены в конце.
Разве есть лучший способ?