的Perl 5.10或更高?
use strict;
use warnings;
use 5.10.0;
my @fruits_i_like = qw/mango banana apple/;
my $this_fruit = 'banana';
if ($this_fruit ~~ \@fruits_i_like) {
say "yummy, I like $this_fruit!";
}
之前5.10:
use strict;
use warnings;
my @fruits_i_like = qw/mango banana apple/;
my $this_fruit = 'banana';
if (scalar grep $this_fruit eq $_, @fruits_i_like) {
print "yummy, I like $this_fruit!\n";
}
的缺点是整个阵列分析通过寻找匹配。这可能不是最佳选择,在这种情况下,您可以使用List::MoreUtils
'any()
,一旦匹配值并且不会继续通过该数组,它将返回true。
use strict;
use warnings;
use List::MoreUtils qw/any/;
my @fruits_i_like = qw/mango banana apple/;
my $this_fruit = 'banana';
if (any { $this_fruit eq $_ } @fruits_i_like) {
print "yummy, I like $this_fruit!\n";
}
快乐黑客!
“大”有多大? – Zaid 2010-10-29 11:38:54
那么我需要读的文件大约是50MB。 – sfactor 2010-10-29 11:43:16
@sfactor:那也不算太坏。 – Zaid 2010-10-29 11:54:20