1
我想从@array
创建一个多维%hash
。从数组中创建散列的多维密钥?
假设@array
就像
my @array=(1,2,3,4,5);
我想分配@array
最后的值作为最终值多维%hash
即
%hash=(
1=>{
2=>
{
3=>
{
4=>5
}
}
}
)
这意味着$hash{1}{2}{3}{4}=5;
我想要做的东西如:
for my $i (0..$#array){
#push $i as key until second last element and assign last element as value
}
注意:@array
可能是任何大小,只是我想分配@array
的最后一个元素作为值到%hash
中最后一个元素之前的元素的键。
对不起@';'没有这一行'$ p = \($$ p - > {$ _})。 '$$ p'是hashref,'$$ p - > $ _'是value,之后我没有得到'\()'? –
'$$ p'可以是hashref,但不一定。在循环中,它可以是undef或者哈希引用。在循环结束时,它可以是任何东西。 '\'得到一个参考。 parens只是在那里覆盖优先权。 – ikegami
以及为什么你在这里参考hash的参考'my $ p = \ shift;' –