怎样用perl读取一个txt文件(英文诗) 并且计算单词数量 每个单词出现次数 以及位置 10

我没有使用过perl刚刚看过书文件读取这一步我都做不到麻烦懂的人帮个忙... 我没有使用过perl 刚刚看过书 文件读取这一步我都做不到 麻烦懂的人 帮个忙 展开
 我来答
jianxia2k
2013-10-08 · TA获得超过399个赞
知道小有建树答主
回答量:365
采纳率:82%
帮助的人:194万
展开全部


$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之类的怎么算。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式