1行に1単語ずつ含まれるテキストファイルを読み取る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";
}
open INFILE
交換してはいけませんかFILE
?$count{$line}
$count
:ここでの機能は何ですか?ただ書くことはできませんか$line++
?この文章を説明してもらえますか?
while ( ($word,$occurrences) = each(%count))
答え1
- ファイルハンドル名には特別な意味はありません。未使用または
STDOUT
ファイルハンドル名として使用されませSTDIN
ん。と同じように動作しますが、一部は読みやすさを好むかもしれません。ファイル処理の問題に関する貴重な洞察を得るには、以下のMatのヒントを参照してください。STDERR
FILE
INFILE
INFILE
%count
各単語の発生回数を格納するために使用されるハッシュ値。- パールドックページ
each
ここ。デフォルトでは、この行はハッシュのキーと値のペアを繰り返し、キーを変数に割り当て、ハッシュのキーと値を変数に割り当て$word
ます$occurrences
。