我正在尝试创建一个程序来计算数据文件的列中出现的不同值。因此,它会像,如果列的可能值是A,B,C的输出是一样的东西在Perl中,如何按值的频率进行排序?
A 456
B 234
C 344
我一直能得到A,B和C的运行计数容易通过做这样的事情
my %count;
for my $f (@ffile) {
open F, $f || die "Cannot open $f: $!";
while (<F>) {
chomp;
my @U = split//;
$count{$U[2]}++;
}
}
foreach my $w (sort keys %count) {
printf $w\t$count{$w};
}
例如在这里,我正在计算文件的第二列给出的路径。
如何通过计数输出中的printf的排序,而不是键(或值A,B,C)来获得 -
A 456
C 344
B 234
[perldoc -f printf](http://perldoc.perl.org/functions/printf.html):当一个简单的“`print”“时,不要陷入使用”`printf`“的陷阱会做。 “`print`”更高效且不易出错。 – 2010-12-23 15:28:44