Perl的smartmatch操作符在数组中搜索标量时有多快?

我想反复搜索数组中不改变的值。

到目前为止,我一直这样做:我把值放在一个哈希(所以我有一个数组和哈希与本质上相同的内容),我搜索哈希使用exists。

我不喜欢有两个不同的变量(数组和散列),既存储相同的东西;然而,哈希比搜索快得多。

我发现在Perl 5.10中有一个〜(smartmatch)操作符。在数组中搜索标量时效率如何?

解决方法

如果要在数组中搜索单个标量,可以使用 List::Util的第一个子例程。一旦它知道答案,它就停止。我不希望这样比散列查找更快,如果你已经有哈希,但是当你考虑创建散列并将其存储在内存中时,您可以更方便地搜索已经存在的数组。

对于智能搭档操作符的智慧,如果你想看看它是多么聪明,测试一下。

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...