我正在嘗試創建一個程序來計算數據文件的列中出現的不同值。因此,它會像,如果列的可能值是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