因此,我有一个简单的脚本来从命令行读取文本文件,并且我想要计算“the”的数量,但我已经得到奇怪的数字。计数发出给我所有不同答案的单词“the”
while(<>){
$wordcount= split(/\bthe\b/, $_);}
print "\"the\" occurs $wordcount times in $ARGV";
因此,使用,我得到的10个事件,但如果我用/ \的意见书\ B/I我得到12/\的意见书\ B /给我6,我相信。我的测试txt中有11次出现。我只是一个白痴? $ wordcount应该从1还是0开始?用这种方法分裂也是不好的做法吗?该代码适用于实际计数的单词,但不是在计算确切的字符串时。新的perl所以任何和所有的虐待感激。谢谢
编辑:我也知道它没有添加,但现在我得到$ wordcount被视为更像一个数组,所以它为以前的迭代工作,虽然它肯定是糟糕的形式。
您正在覆盖每行的'$ wordcount'。所以你只打印最后一行的出现次数。如果你想要总数,你应该使用'+ ='而不是'='。 – Barmar 2014-10-03 02:55:51
他们都是错的。两者都是因为你没有添加(就像Barmar说的那样),并且因为'split'没有任何方法来计算匹配模式的事物的数量(它通常会但不总是太高)。 – hobbs 2014-10-03 03:07:12