0
我试图生成一个多维散列,其中包含与该密钥关联的一个密钥和两个值。这是我的样本输入文件生成一个多维散列,其中包含一个密钥和与该密钥相关联的两个值
layer_def A1 10001;
layer_map 2 -datatype 2 10001;
layer_def A2 10002;
layer_map 3 -datatype 2 10002;
我想与第二线(即10001与10001)的最后一个元素(第3模式),第一行的最后一个元素(第2模式)比较,如果它们相等,则从第二行挑选第一行的第一个模式和第一个模式,并将它们推入散列,其键将是第一行的Ist模式,并且值将是第一行&第二行从第二行开始。而后来想用这个哈希生成的输出格式类似
预期样品输出
A1 = layer(2 type(2))
A2 = layer(3 type(2))
我试着用下面的示例代码,但看起来,我们不能将多值一个键。
sample perl code..
#!/usr/bin/perl -w
use strict();
my $inFile = shift @ARGV;
my %cdnsInt=();
my %layerInfo=();
my %outHash=();
open layerMap, $inFile or die "can't read $inFile \n";
while(my $line = <layerMap>) {
if($line =~ /^\s*layer_map\s+(\S+)\s+-datatype\s+(\S+)\s+(\S+)\s*;/gi) {
%layerInfo = ($3 => [$1, $2]);
} elsif($line =~ /^\s*layer_def\s+(\S+)\s+(\S+)\s*;/gi) {
$cdnsInt{$2}=$1;
}
}
for (keys %layerInfo) {
for my $tmp (keys %cdnsInt) {
if ($_ eq $tmp) {
push @{ $outHash{values %cdnsInt} }, (values %layerInfo);
}
}
}
请问有人可以帮我解决这个问题吗?
非常感谢。
问候, Divesh
非常感谢woolstar。我如何从outHash中检索值? – user3093942
'$ outHash {'A1'} [0]'&'$ outHash {'A1'} [1]' – woolstar