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

我没有使用过perl 刚刚看过书 文件读取这一步我都做不到 麻烦懂的人 帮个忙



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

温馨提示:答案为网友推荐,仅供参考
相似回答