9
我可以使用IxHash来记住哈希的插入顺序。如何保留嵌套Perl哈希的插入顺序?
use Tie::IxHash;
my %hash;
tie(%hash, 'Tie::IxHash');
%hash = (
x => 10,
z => 20,
q => { a1 => 1, a3 => 5, a2=>2,},
y => 30,
);
printf("keys %s\n", join(" ", keys %hash));
=> keys x z q y
嵌套散列?
printf("keys %s\n", join(" ", keys %{$hash{q}}));
keys a2 a1 a3
我怀疑答案是否定的,因为q散列是匿名的,并且在IxHash看到它之前命令丢失。
我知道我可以在$ hash {q}上执行Tie并添加元素,但我喜欢使用单个赋值来构建哈希。
有没有一招?