我在一些代码中看到了一个声明:
$test = "test";
$test1 = "tes2";
$i = 2;
$var{$test}{$test1}{"cnt"}[$i] = $var_val; # What exactly is this?
如果他们提到{
大括号,那就是连接。我真的不明白这是什么。
我的猜测是最后一个变量就像$vartesttest1cnt2
。
答案 0 :(得分:11)
嗯,不,不是真的。 %var
是哈希数组哈希的哈希值。
%var
是哈希
$var{$test}
=> $var{"test"}
是哈希
$var{$test}{$test1}
=> $var{"test"}{"tes2"}
是哈希
$var{$test}{$test1}{"cnt"}
=> $var{"test"}{"tes2"}{"cnt"}
是一个数组
$var{$test}{$test1}{"cnt"}[$i]=$var_val
将$var_val
分配给数组中的索引2
答案 1 :(得分:2)
不,%var
是哈希。
test
是哈希的关键。
$var{$test}
变为$var{"test"}
,然后变成该密钥存储的任何值,这显然是另一个哈希值。其键$test1
会导致另一个哈希,其中有一个键cnt
,该键导致一个数组,其索引$i
(2)设置为$var_val
。
答案 2 :(得分:0)
这是一个多维数据结构。 %var
是哈希值。 $var{$test}
是一个哈希元素。 $var{$test}{$test1}
表示您的哈希元素是对另一个哈希的引用。 $var{$test}{$test1}{"cnt"}
表示$var{$test}{$test1}
本身就是对哈希的引用。 $var{$test}{$test1}{"cnt"}[$i]
表示前一级别是对数组的引用。不明白参考是什么? Try perldoc