我正在尝试编写一个脚本来生成嵌套哈希 . 我的第一个键/值对由两个标识符组成 - 第4列中的每种主要标识符在第3列中具有相应的标识符(可以是可变长度),以及第6列中的相关数值 .
我正在考虑为标识符构造一个键值对,然后在将数字标识符合并到第二个哈希值之前对键(A,B,C等)进行排序 .
Input File
CATE 1 CA A 1 108.8
CATE 2 CB A 1 8.33
CATE 3 CA B 1 45.1
CATE 4 CB B 1 3.96
CATE 5 CG B 1 3.94
CATE 6 CA C 1 1.96
CATE 7 CB C 1 2.94
下面是我的脚本 - 当我运行它时,我没有得到任何输出,我不确定为什么 .
Input Script
#!/usr/bin/perl
use strict;
use warnings;
my $key;
my $value;
my %hash;
my @fields;
my $filename = 'data.txt';
open my $fh, '<', $filename or die "Can't open $filename:$!";
while(my $line = <$fh>) {
chomp $line;
@fields = split /\s+/, $line;
$key = $fields[3];
$value = $fields[2];
$hash{$key} = $value;
}
foreach my $name (sort keys %hash) {
foreach my $type (keys %{ $hash{$fields[5]}}) {
print "$name, $type: $hash{$name}{$type}\n";
}
}
Expected Hash structure
A CA 108.8
CB 8.33
B CA 45.1
CB 3.96
CG 3.94
C CA 1.96
CB 2.94
2 回答
这是你想要的吗?
产量