perl中统计单词出现频率的一段代码,大家帮我看看我那里错了?

问题描述:

perl中统计单词出现频率的一段代码,大家帮我看看我那里错了?
/usr/bin/perl
open(MY,"1.txt");while(){
while(/fred/){
$words {$1}++;
} }
foreach $_ (keys %words){
print "$_$words{$1}\n;
"}
我的txt文本是
fred
barney
fred
dino
wilma
fred
1个回答 分类:综合 2014-10-11

问题解答:

我来补答
#!/usr/bin/perl
use strict;
use warnings;
my %words =();
open(MY,"1.txt")
or die "File problem:$!";
while (){
$words {$1}++ if /(\w+)/ ;
}
foreach (keys %words) {
print $_,"=> ",$words{$_},"\n";
}
再问: 能解释下这个代码吗? $words {$1}++ if /(\w+)/ ;
再答: ## $words {$1}++ if /(\w+)/ ; -- 如果一行 (在 $_ 里) 匹配到了一个单词,if ($_=~ m/(\w+)/ ) {...} 匹配到的单词在 $1 里 $words{$1} 就加 1 (起始数为0)
再问: 那您能帮我看下我哪里错了嘛,呵呵 ,我感觉我的也挺对的啊?谢谢您了
再答: --最大的错误: use strict; use warnings;
 
 
展开全文阅读
剩余:2000