次のプログラムでハッシュを使用して出現をカウントした後、実際のリストの順序を維持するにはどうすればよいですか? たとえば<DATA>
、
a
b
e
a
c
d
a
c
d
b
etc.
ハッシュを使用して、各要素の出現をカウントしました。
そして私が欲しいのは:
a 3
b 2
e 1
c 2
d 2
しかし、次のプログラムはそうではないことを示しています。
my (%count, $line, @array_1, @array_2);
while ($line = <DATA>) {
$count{$line}++ if ( $line =~ /\S/ );
}
@array_1 = keys(%count);
@array_2 = values(%count);
for(my $i=0; $i<$#array_1; $i++)
{
print "$array_1[$i]\t $array_2[$i]";
}