我想反复搜索数组中不改变的值。
到目前为止,我一直这样做:我把值放在一个哈希(所以我有一个数组和哈希与本质上相同的内容),我搜索哈希使用exists。
我不喜欢有两个不同的变量(数组和散列),既存储相同的东西;然而,哈希比搜索快得多。
我发现在Perl 5.10中有一个〜(smartmatch)操作符。在数组中搜索标量时效率如何?
解决方法
如果要在数组中搜索单个标量,可以使用
List::Util的第一个子例程。一旦它知道答案,它就停止。我不希望这样比散列查找更快,如果你已经有哈希,但是当你考虑创建散列并将其存储在内存中时,您可以更方便地搜索已经存在的数组。
对于智能搭档操作符的智慧,如果你想看看它是多么聪明,测试一下。