我有具有多列的製表符分隔數據。計算Perl中每列值w.r.t中的每個值的總和
我在第31列有OS名稱,第6和第7列有數據字節。我想要做的是計算每個獨特操作系統的總體積。
所以,我做在Perl是這樣的:
#!/usr/bin/perl
use warnings;
my @hhfilelist = glob "*.txt";
my %count =();
for my $f (@hhfilelist) {
open F, $f || die "Cannot open $f: $!";
while (<F>) {
chomp;
my @line = split /\t/;
# counting volumes in col 6 and 7 for 31
$count{$line[30]} = $line[5] + $line[6];
}
close (F);
}
my $w = 0;
foreach $w (sort keys %count) {
print "$w\t$count{$w}\n";
}
因此,其結果會是這樣
Windows 100000
Linux 5000
Mac OSX 15000
Android 2000
但似乎在這個代碼中的一些錯誤,因爲所產生的值我得到的不是預期的。
我在做什麼錯?
我會考慮起來 - 投票你的問題(風格,而不是錯誤本身),如果你真的提供樣本輸入導致問題,實際產出和預期產出 – DVK 2011-02-17 23:26:41