具体实例:
把下面的哈希值进行转换成哈希in哈希
$hash{"C"}{"d"}=10;
$hash{"C"}{"e"}=10;
$hash{"D"}{"a"}=11;
$hash{"D"}{"b"}=11;
$hash{"E"}{"g"}=12;
$hash{"E"}{"h"}=12;
$hash{"F"}{"i"}=11;
转换后:
%hash=("C"=>{"d"=>10,"e"=>10},
"D"=>{"a"=>11,"b"=>11},
"E"=>{"g"=>12,"h"=>12},
"F"=>{"i"=>11});
打印hash,哈希不能直接打印,必须在foreach循环中打印,这个很奇怪。不能直接打印$hash{"C"}{"d"}(运行报错)。
%hash=("C"=>{"d"=>10,"e"=>10},
"D"=>{"a"=>11,"b"=>11},
"E"=>{"g"=>12,"h"=>12},
"F"=>{"i"=>11});
foreach $id1 (keys %hash){
foreach $id2(keys %{$hash{$id1}}){ #解引用匿名哈希
print "$id1\t$id2\t$hash{$id1}{$id2}\n";
}
}
运行之后:
PS C:\Users\TAO\Desktop> perl '.\new 5.pl'
E g 12
E h 12
F i 11
D b 11
D a 11
C d 10
C e 10
网友评论