怎样用perl读取一个txt文件(英文诗) 并且计算单词数量 每个单词出现次数 以及位置 10
1个回答
展开全部
$line_count = 1;
foreach $line (<FILE>) {
# $line里为每一行的内容,你可以在此处理每一行
$line =~ s/[\n\r]$//g;
$line =~ tr/[A-Z]/[a-z]/;
@words = split(/[ ,.\?'"]/, $line);
# 将$line的内容根据空格、逗号、句号、问号、单引号、双引号分开,放到数组@words里面。
foreach $word (@words) {
next if (!$word);
$count{$word} ++; # 用哈希表计数统计每个单词的数目
push @{$position{$word}}, $line_count; # 保存位置
}
$line_count ++;
}
close FILE;
foreach $word (keys %count) {
$num = $count{$word};
print "单词[$word]出现了[$num]次, 分别位于第[" . join(',', @{$position{$word}}) . "]行\n";
}
实际测试时注意一下拆分的依据,可能需要增加多种符号。如果
或者直接使用\W来拆分: @words = split(/\W/, $line); 主要考虑You're之类的怎么算。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询