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