我有一个看起来像这样的数据(邻接矩阵):
foo bar 0.14 qux 0.2
bar foo 0.14 qux 0.4
qux foo 0.2 bar 0.4
我想要做的是将它们转换成成对表:
foo bar 0.14
foo qux 0.2
bar qux 0.4
但我坚持使用以下代码。正确的方法是什么?
use strict;
while ( <DATA> ) {
chomp;
next if (/^>/);
my $line = $_;
my @els = split(/\s+/,$line);
my $pivot = $els[0];
my $genen = '';
my $score = '';
foreach my $id ( 0 .. $#els ) {
next if ($id == 0);
if ( $id % 2 != 0 ) {
# gene name
#print "$els[$id]\n";
$genen = $els[$id];
}
else {
#
$score = $els[$id];
}
print "$pivot $genen $score\n";
}
#print "--\n";
}
__DATA__
foo bar 0.3 qux 0.2
bar foo 0.15 qux 0.4
qux foo 0.3 bar 0.4