「はじめてのPerl」第5章

5.5練習問題2の自分の解答

print "名前を入力してください。\n";
chomp(my @name_list = <STDIN>);
my %hash;
foreach (@name_list) {
	my $name = $_;
	if (! exists $hash{$name}) {
		$hash{$name} = 1;
	} else {
		$hash{$name} += 1;
	}
}
while ( my ($key, $value) = each %hash ) {
	print "$keyさんは、$value回出現\n";
}

本で紹介されている解答例

my(@words, %count, $word);
chomp(@words = <STDIN>);

foreach $word (@words) {
	$count{$word} += 1;
}

foreach $word (keys %count) {
	print $word was seen $count{$word} times.\n";
}

ああ、まだまだだ。ifなんて使う必要ないのか。