规范的一部分说“有些名字很特别,例如Hughie,Dewey,Louis和Donald.其他名字可能会在项目的整个生命周期中随意添加.每当你输入其中一个名字时,请玩quack.wav.”
我可以写……
while (<>) { if ($_ =~ /Hughie|Dewey|Louis/) { quack() ; } elsif ($_ =~ /Donald/ { quack() ; you_re_fired_apprentice() ; # Easter egg don't tell QA } }
…但是,虽然要实施,但它看起来是WTF-y:二进制搜索在哪里?如果鸭子名字的数量突然大幅增加怎么办?它根本不会扩展!
我可以在临时目录中使用这些名称创建空文件,然后使用“文件存在”API,但这看起来很迂回,我必须确保它们最后被删除.
当然有更好的方法吗?