我慢してください。
一連の単語 (1 行に 1 単語) 1を入力の終わりまで読み取るプログラムを作成し、各単語が表示された回数の要約を出力します。(ヒント: 未定義の値が数値であるかのように使用されると、Perl は自動的にそれを 0 に変換することを覚えておいてください。現在の合計を保持していた以前の演習を振り返ると役立つ場合があります。) 入力単語が fred の場合、barney 、fred、dino、wilma、fred (すべて別の行にあります) の場合、出力は fred が 3 回見られたことを示しているはずです。追加のクレジットとして、出力で要約単語を ASCII 順に並べ替えます。
[1] 入力行から個々の単語を抽出する方法をまだ示していないため、1 行に 1 単語である必要があります。
これはハッシュを使用する必要があります。そして、私はその方法を理解できません。配列を使用し、2 つのループを使用して重複を比較することしか考えられません。私は問題を正しく理解していなかったと思います。これが配列を使用した私のコードです。
#! usr/bin/perl
use warnings;
use strict;
chomp(my @input = <STDIN>);
foreach my $name (@input) {
my $count;
foreach my $compare_name (@input) {
if ($name eq $compare_name) {
$count += 1;
}
}
print "$name seen $count times\n";
}
しかし、これは例えば次のように出力します:
myname
myname
myname
it prints:
myname seen 3 times
myname seen 3 times
myname seen 3 times
誰かがこれにハッシュを使用する方法を教えてもらえますか? ありがとう