的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