我已经写了一个函数,通过包含一个有序的键数组作为哈希的元素来按照规定的顺序打印哈希。在perl中,我怎样才能在父散列中引用散列元素?
由于可能有许多具有相同顺序的子哈希,我希望能够将顺序字符串放在父哈希中,并在每个子哈希中引用它。 我无法让它工作,如下面的代码片段所示。
有没有办法做到这一点?
$hr={
Order => [qw(Sp Ls)],
OrderSP => [qw(a b)],
Sp => {
a =>-1,
b => -1,
Order => @{$hr->{OrderSP}}
},
Ls => {
c => -1,
d => -1,
Order => [qw(c d)]
}
};
print "\n\@{\$hr->{OrderSP}} = ",@{$hr->{OrderSP}}; # ab
print "\n\@{\$hr->{Ls}->{Order}} = ",@{$hr->{Ls}->{Order}}; # cd
print "\n\@{\$hr->{Sp}->{Order}} = ",@{$hr->{Sp}->{Order}}; # blank
Result:
@{$hr->{OrderSP}} = ab
@{$hr->{Ls}->{Order}} = cd
@{$hr->{Sp}->{Order}} =
尝试把周围的括号'@ {$ hr - > {OrderSP}}':'Order => [@ {$ hr - > {OrderSP}}]' –
这看起来很像您已经解析过的东西 - 也许是一些带有XML :: Simple的XML?如果是这样,那么可能有更好的方法来解决这个问题。 – Sobrique