Rit*_*ose 10 perl hash reference
说我有类似的东西:
# %superhash is some predefined hash with more than 0 keys;
%hash = ();
foreach my $key (keys %superhash){
$superhash{ $key } = %hash;
%hash = ();
}
Run Code Online (Sandbox Code Playgroud)
superhash的所有键是否都指向相同的空哈希,%hash或者它们是不同的空哈希?
如果没有,我怎样才能确保它们指向空的哈希?
Eri*_*rom 19
您需要使用\运算符来引用多个数据类型(数组或散列),然后才能将其存储到任一个的单个插槽中.但是在给出的示例代码中,如果引用,则每个都是相同的哈希.
初始化数据结构的方法是:
foreach my $key (keys %superhash) {
$superhash{ $key } = {}; # New empty hash reference
}
Run Code Online (Sandbox Code Playgroud)
但是由于自动更新(在将变量用作容器时创建适当的容器对象),Perl中的这种初始化在很大程度上是不必要的.
my %hash;
$hash{a}{b} = 1;
Run Code Online (Sandbox Code Playgroud)
现在%hash有一个键'a',其值为匿名hashref,包含键/值对b => 1.阵列以相同的方式自动生成.
| 归档时间: |
|
| 查看次数: |
35986 次 |
| 最近记录: |