2015-11-02 89 views
-2

也许我的问题很简单,但我想知道最好的方法和有效的方法。如果在Perl中至少有一个数组元素

让我们有一个字符串数组,我们想将它与另一个字符串进行比较。 说,

my @array = {"hi","bye","you","shadow", "hi"} 

现在我要检查,如果阵列中的至少一个元素等于hi再有就是一些条件。 我可以知道你的想法吗?我知道在一个for循环中可以很容易地做到这一点,但是你会建议一个好的吗?

+1

对阵列使用'grep'? – rbm

回答

0

喜欢的东西

my @array = qw (hi bye you shadow hi); 
my $hi_count = scalar(grep {$_ eq 'hi'} @array); 
print $hi_count; 

这将打印2因为有两个词等于hi

+2

来自[List :: Util](http://perldoc.perl.org/List/Util.html#any)的'any'对于大型数组来说更好,因为一旦找到匹配它就会返回;无论如何,grep都会遍历每一个数组元素。 – ThisSuitIsBlackNot

+0

@ThisSuitIsBlackNot您是否愿意将您的评论作为答案发送? – Royeh

+2

@Royeh不,因为它已经用于至少3个重复问题的答案中:http://stackoverflow.com/q/720482/176646,http://stackoverflow.com/q/4570650/176646,http: //stackoverflow.com/q/2860226/176646。没有理由在这里添加它。 – ThisSuitIsBlackNot

相关问题