- 论坛徽章:
- 145
|
回复 1# Tracy_Panda
$ perl cb.pl FILE
DYS389I DYS389II DYS390 DYS456
2698 12 27 25 15
2698 12 27 25 15
2720 12 28 24 14
2720 12 14
2736 12 29 22 15
2736 12
$ cat cb.pl
use strict;
use warnings;
my(%hDsy, %hKey, %hVal, %hCnt);
my(@aDsy, @aKey);
while(<>){
chomp;
my($sKey, $sDsy, $sVal) = split;
push(@aDsy, $sDsy) if(!$hDsy{$sDsy}++);
push(@aKey, $sKey) if(!$hKey{$sKey}++);
my $sCnt = ++$hCnt{$sKey}{$sDsy};
$hVal{$sKey, $sDsy, $sCnt} = $sVal;
}
print join("\t", "", @aDsy,"\n");
foreach my $sKey (@aKey){
my $sMax = (sort{$b<=>$a}values %{$hCnt{$sKey}})[0];
foreach my $sCnt (1 .. $sMax){
my $sOut = "$sKey";
foreach my $sDsy (@aDsy){
$sOut .= "\t$hVal{$sKey,$sDsy,$sCnt}";
}
print "$sOut\n";
}
}
|
评分
-
查看全部评分
|