也许我的问题很简单,但我想知道最好的方法和有效的方法。如果在Perl中至少有一个数组元素
让我们有一个字符串数组,我们想将它与另一个字符串进行比较。 说,
my @array = {"hi","bye","you","shadow", "hi"}
现在我要检查,如果阵列中的至少一个元素等于hi
再有就是一些条件。 我可以知道你的想法吗?我知道在一个for
循环中可以很容易地做到这一点,但是你会建议一个好的吗?
也许我的问题很简单,但我想知道最好的方法和有效的方法。如果在Perl中至少有一个数组元素
让我们有一个字符串数组,我们想将它与另一个字符串进行比较。 说,
my @array = {"hi","bye","you","shadow", "hi"}
现在我要检查,如果阵列中的至少一个元素等于hi
再有就是一些条件。 我可以知道你的想法吗?我知道在一个for
循环中可以很容易地做到这一点,但是你会建议一个好的吗?
喜欢的东西
my @array = qw (hi bye you shadow hi);
my $hi_count = scalar(grep {$_ eq 'hi'} @array);
print $hi_count;
这将打印2
因为有两个词等于hi
。
来自[List :: Util](http://perldoc.perl.org/List/Util.html#any)的'any'对于大型数组来说更好,因为一旦找到匹配它就会返回;无论如何,grep都会遍历每一个数组元素。 – ThisSuitIsBlackNot
@ThisSuitIsBlackNot您是否愿意将您的评论作为答案发送? – Royeh
@Royeh不,因为它已经用于至少3个重复问题的答案中:http://stackoverflow.com/q/720482/176646,http://stackoverflow.com/q/4570650/176646,http: //stackoverflow.com/q/2860226/176646。没有理由在这里添加它。 – ThisSuitIsBlackNot
对阵列使用'grep'? – rbm