在以下程序中使用哈希计算实际列表的出现后,如何维护实际列表的顺序?例如,<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]";
}