【发布时间】:2011-09-05 13:28:27
【问题描述】:
我正在尝试使用 Perl 编写一个程序,它应该返回文件中所有单词的频率和文件中每个单词的长度(不是所有字符的总和!)以从西班牙语文本中生成 Zipf 曲线(如果您不知道 Zipf 曲线是什么,这没什么大不了的)。现在我的问题是:我可以做第一部分,我得到所有单词的频率,但我不知道如何得到每个单词的长度! :( 我知道命令行 $word_length = length($words) 但是在尝试更改代码后,我真的不知道应该将它包含在哪里以及如何计算每个单词的长度。
这就是我的代码在知道之前的样子:
#!/usr/bin/perl
use strict;
use warnings;
my %count_of;
while (my $line = <>) { #read from file or STDIN
foreach my $word (split /\s+/gi, $line){
$count_of{$word}++;
}
}
print "All words and their counts: \n";
for my $word (sort keys %count_of) {
print "$word: $count_of{$word}\n";
}
__END__
希望有人给点建议!
【问题讨论】:
-
您不妨检查一下这个问题:stackoverflow.com/questions/6170985/… 当您进行像您这样的拆分时,您最终会得到
word、Word和word,都被视为不同的词,这可能不是你想要的。