Perl - zliczanie liczby wystąpień

0
use strict;
#use warnings;
#use diagnostics;

chomp(my @words=<STDIN>);

my %count;

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

foreach my $key(%count){
	print "$key : $count{$key}";
	print "\n";
}

Mam tu kod w Perlu który ma zliczać liczby wystąpień słów. Każde słowo wprowadzam w nowej linii. Niestety program wywala jakiś dziwny output.

a8ec0e074d.png

Dlaczego tak się dzieje? Skąd pojawiają się te "1 : " albo "3 : ";

1

Powinieneś iterować po kluczach hasha %count, a iterujesz po kluczach i wartościach

http://rextester.com/QIX54637

#perl 5.18.2 

use strict;
#use warnings;
#use diagnostics;

my @words=qw( a a b b b c d d d d d );
 
my %count;
 
foreach my $key(@words){
    $count{$key}+=1;
} 
 
foreach my $key (keys %count){
    print "$key : $count{$key}";
    print "\n";
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1