这就是我的情况。我有两张桌子:
Table 1
C0 C1 C2 C3 ... C8
1 10
2 50
3 70
3 20
Table 2
C0 C1 C2 C3 ... C7
1
2
3
Table 2 should become like this
C0 C1 C2 C3 ... C7
1 x = 10
2 x = 50
3 x = 70,20
所以基本上我想做的是比较两个表的 C1 的值。如果值相同,则应将 C8(表 1)的值复制到 C7(表 2)并添加“x =”。但是,当 C1 (table1) 中存在重复值时,例如此处的 3,那么在表 2 中,这些值应彼此相邻放置,以“,”分隔(例如此处 x = 70,20)
这是我到目前为止所拥有的
my $table1 = $ARGV[0];
my $table2 = $ARGV[1];
# Open my file (I use exactly the same code for opening table 2)
unless ($table1) {
print "Enter filename of file:\n";
$table1 = <STDIN>;
chomp $table1;
}
open(DATA1,'<',$table1) or die "Could not open file $filename $!";
# Here I push the values of C8 in table 1 to the same row
my %info = ()
while (<DATA1>) {
my @columns = split;
if( exists $info{ $columns[1] } ) {
push @{ $info{ $columns[1] }->{var} }, $columns[8];
}
else {
$info{ $columns[1] } = { var =>[ $columns[8] ] }
}
}
如果这一切都正确,我现在唯一需要做的就是将值复制到 C7(表 2)并让它们以“x=”开头
有人可以帮我解决这个问题吗?