regex – Perl:查找变量的值是否与数组中的值匹配
发布时间:2020-12-15 21:51:51 所属栏目:大数据 来源:网络整理
导读:我是个新手.我有一个代码,其中变量在foreach循环期间加载了几个值.我想要做的是只在该变量中对该变量执行某些操作.在perl中执行此操作的最有效方法是什么,因为我正在处理的数据非常大. 我的问题的一个简单例子是,说我有一系列我想要的水果 @fruits_i_like =
我是个新手.我有一个代码,其中变量在foreach循环期间加载了几个值.我想要做的是只在该变量中对该变量执行某些操作.在perl中执行此操作的最有效方法是什么,因为我正在处理的数据非常大.
我的问题的一个简单例子是,说我有一系列我想要的水果 @fruits_i_like = qw (mango banana apple); 但是我在foreach循环中有一个$fruit变量,它从一个包含所有不同类型水果的数据文件中获取水果的名称.我如何只挑选@fruits_i_like数组中$fruit的那些案例? 解决方法
您可以使用这样的哈希:
my %h = map {$_ => 1 } @fruits_i_like; if (exists $h{$this_fruit}) { # do stuff } 这是一个比较这种方式与mfontani解决方案的基准 #!/usr/bin/perl use warnings; use strict; use Benchmark qw(:all); my @fruits_i_like = qw/mango banana apple/; my $this_fruit = 'banana'; my %h = map {$_ => 1 } @fruits_i_like; my $count = -3; my $r = cmpthese($count,{ 'grep' => sub { if ( scalar grep $this_fruit eq $_,@fruits_i_like ) { # do stuff } },'hash' => sub { if (exists $h{$this_fruit}) { # do stuff } },}); 输出: Rate grep hash grep 1074911/s -- -76% hash 4392945/s 309% -- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |