我有一些文件,我正在尝试解析并从第三个文件构建哈希和查找。文件格式 :
文件 1:
ID2
ID4
文件 2:
x1 y1 z1 ID1
x2 y2 z2 ID2
x3 y3 z3 ID2
x4 y4 z4 ID4
文件 3:
a1 b1
a2 b2
a3 b3
我正在尝试做的事情:
对于 File1 中的所有这些 ID,使用 File2 中的 ID 字段查找 x 和 y 坐标,并查看 File3 中的“a”是否位于 x 和 y 之间。
到目前为止我的想法:
- 取文件 2;将其解析为以 ID 为键的散列
- 取文件1;如果 ID 存在于文件 2 中;打开文件 3 并检查“a”的坐标范围并打印它
我执行了多远?不太远。我正在尝试读取文件 2 并解析哈希中的所有元素,但我被卡住了:
while (<FILE>){
chomp $_;
my $line = $_;
my @arr = split ("\t", $line);
my $id = $arr[3];
if (exists ($hash{$id})) {
my $x = $arr[0];
my $y = $arr[1];
my $z = $arr[2];
push @{$hash{$id}{'x'}, $x;
push @{$hash{$id}{'y'}, $y;
push @{$hash{$id}{'y'}, $y;
} else {
$hash{'id'} = $id;
$hash{$id}{'x'} = $arr[0];
$hash{$id}{'y'} = $arr[1];
$hash{$id}{'z'} = $arr[2];
}
}
print Dumper %hash;
close FILE;
但是,当然,我在这里做错了