How can I maintain the order of actual list after counting its occurrence using a hash in the following program? For example, <DATA>
are
a
b
e
a
c
d
a
c
d
b
etc.
Using hash, i counted the occurrence of each element.
and what i want is:
a 3
b 2
e 1
c 2
d 2
but the following program shows me otherwise.
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] $array_2[$i]";
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…