如何保存散列元素的添加順序 對於第二個VAR?Tie :: IxHash在哈希哈希中排序關聯數組?
(哈希值的哈希值)
例如:
use Tie::IxHash;
my %hash;
tie %hash, "Tie::IxHash";
for my $num (0 .. 5){
$hash{"FirstVal$num"}++;
}
for my $num (0 .. 5){
$hash{"FirstValFIXED"}{"SecondVal$num"}++;
}
print Dumper(%hash);
當傾倒出來的結果,$ VAR14沒有保留插入順序:
$VAR1 = 'FirstVal0';
$VAR2 = 1;
$VAR3 = 'FirstVal1';
$VAR4 = 1;
$VAR5 = 'FirstVal2';
$VAR6 = 1;
$VAR7 = 'FirstVal3';
$VAR8 = 1;
$VAR9 = 'FirstVal4';
$VAR10 = 1;
$VAR11 = 'FirstVal5';
$VAR12 = 1;
$VAR13 = 'FirstValFIXED';
$VAR14 = {
'SecondVal5' => 1,
'SecondVal4' => 1,
'SecondVal2' => 1,
'SecondVal1' => 1,
'SecondVal3' => 1,
'SecondVal0' => 1
};
我知道我可以用一些排序操作來欺騙這個例子,但在我真正的問題中,這些元素沒有編號,或者無法排序。 是否有任何簡單的函數/操作散列多級順序插入?
謝謝,
Yodar。
這看起來像Dumper輸出。如果是這種情況,那麼'$ VAR1'就是*字符串*'FIRSTVAL'。請顯示可以轉儲的代碼。這看起來不像IxHash內部。 – Axeman 2010-08-04 15:14:39