请解释perl脚本

请解释perl脚本

编写一个 Perl 程序,读取每行包含一个单词的文本文件。创建一个哈希,其中包含读取为键的单词以及它们被读取为值的次数。打印出每个单词及其频率。

print $ARGV[0]."\n";

open (FILE,$ARGV[0]);
while ($line = <FILE>)
{
        chomp($line);
        if (exists($count{$line}))
        {
            $count{$line}++;
        }
        else
        {
            $count{$line} = 1;
        }
}

while ( ($word,$occurrences) = each(%count))
{
    print $word."  ".$occurrences."\n";

}
  1. 不应该是open INFILE代替吗FILE

  2. $count{$line}$count:这里的作用是什么?你就不能写吗$line++

  3. 你能解释一下这句话吗?

    while ( ($word,$occurrences) = each(%count))
    

答案1

  1. 文件句柄的名称没有任何特殊含义。除非使用STDOUT,STDINSTDERR作为文件句柄名称。FILE与 的工作方式相同INFILE,尽管有些人可能更喜欢INFILE可读性。请参阅下面 Mat 的提示,了解有关文件句柄问题的宝贵见解。
  2. %count是将用于存储每个单词出现次数的哈希值。
  3. Perldoc 页面each 这里。基本上,这一行迭代哈希的键值对,并将键分配给变量$word,并将哈希中的键值分配给变量$occurrences

相关内容