用perl 的 hash 处理数组
我是perl自学者,不会用hash。比如数组:A1A2A3B1B2C1C3如何用hash将其格式转换为A123B12C13即以第一列为key,将相同key的value合并...
我是perl自学者,不会用hash。比如数组:
A 1
A 2
A 3
B 1
B 2
C 1
C 3
如何用hash 将其格式转换为
A 1 2 3
B 1 2
C 1 3
即以第一列为key,将相同key的value合并到一行。如何用perl 编? 展开
A 1
A 2
A 3
B 1
B 2
C 1
C 3
如何用hash 将其格式转换为
A 1 2 3
B 1 2
C 1 3
即以第一列为key,将相同key的value合并到一行。如何用perl 编? 展开
1个回答
展开全部
open IN,"< in.txt";
while(<IN>){
chomp;
my @a=split/\s+/,$_;
if(exists $hash{$a[0]}){
$hash{$a[0]}.="\s$a[0]";
}else{
$hash{$a[0]}=$a[1];
}
}
foreach my $key(%hash){
print "$hash{$key}\t";
}
while(<IN>){
chomp;
my @a=split/\s+/,$_;
if(exists $hash{$a[0]}){
$hash{$a[0]}.="\s$a[0]";
}else{
$hash{$a[0]}=$a[1];
}
}
foreach my $key(%hash){
print "$hash{$key}\t";
}
更多追问追答
追问
看不懂,第5,6,8,以及11,12行,能给加个注释说明性的文字吗?多谢
追答
$a[0]就是key
$a[1]就是value
11,12是验证输出结果的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询