我有一个问题我无法完全解开。将以下制表符分隔的数据读入多维哈希:
a b c d e f g h i j k
1 a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1
2 a2 b2 c2 d2 e2 f2 g2 h2 i2 j2 k2
3 a3 b3 c3 d3 e3 f3 g3 h3 i3 j3 k3
4 a4 b4 c4 d4 e4 f4 g4 h4 i4 j4 k4
5 a5 b5 c5 d5 e5 f5 g5 h5 i5 j5 k5
6 a6 b6 c6 d6 e6 f6 g6 h6 i6 j6 k6
第一列显示$ typenumber,第一行显示$ category。其余的单元格(a1,b2等)是$ data
我正在逐行阅读,在选项卡上拆分,并构建一个多维哈希:
$hash{$typenumber}{"data"}{$data}{$category};
使用Data :: Dumper进行打印,我希望此数据显示为
1 => {
"data" => {
a1 => a
b1 => b
c1 => c
}
}
2 => etc.
为此,我尝试使用
my %hash;
tie %hash, 'Tie::IxHash';
将键的顺序保持为添加顺序。 然而,这似乎只适用于第一维,1,2,3,4($ typenumber)的顺序正确,但除此之外的任何东西似乎是随机的:
1 => {
"data" => {
c1 => c
a1 => a
b1 => b
}
}
2 => etc.
有没有更多使用哈希经验的人知道如何维护我为哈希添加密钥的顺序吗?也许我需要在某个地方再次使用领带,但我无法弄清楚如何。