我已經寫了一個函數,通過包含一個有序的鍵數組作爲哈希的元素來按照規定的順序打印哈希。在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