【发布时间】:2011-06-29 11:34:03
【问题描述】:
我有多列的制表符分隔数据。
我在第 31 列中有操作系统名称,在第 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
但此代码中似乎存在一些错误,因为我得到的结果值与预期不符。
我做错了什么?
【问题讨论】:
-
如果您实际提供了导致问题的示例输入、实际输出和预期输出,我会考虑对您的问题进行投票(关于样式,而不是错误本身)