我有以下Perl脚本,用于统计字符串中F和T的数量:
my $str = "GGGFFEEIIEETTGGG";
my $ft_count = 0;
$ft_count++ while($str =~ m/[FT]/g);
print "$ft_count\n";
有没有更简洁的方法来获取计数(换句话说,将第2行和第3行合并)?
tr/FT//
。 - Tototr///
,我赞同。我认为你的基准测试有一个bug。为了通过正则表达式计数替换次数,需要添加一个中间列表上下文:my $cnt = ()= $y =~ m/[FT]/g;
。以这种方式运行时,tr///
比m//
快得多。我也在ActivePerl下使用v5.10版本。 - FMc