perl 第三层hash 提取keys 错误
来源:学生作业帮 编辑:百度作业网作业帮 分类:英语作业 时间:2024/07/09 23:05:36
perl 第三层hash 提取keys 错误
%hash = (
name => {
small => {
dog => 1,
cat => 2,
rabit => 3,
},
medium => 1,
large => 2,
},
);
my @keys = keys %{$hash{name}}; ==> result:large small medium...3.
my @keys = keys %{$hash{name{small}}};==> Can't locate object method "name" via package "small" (perhaps you forgot to load "small"?) at hash line 20.
my $keys = @keys;
print "@keys...$keys.\n"
为什么无法获取第三层的hash keys,而第二层则正常?
%hash = (
name => {
small => {
dog => 1,
cat => 2,
rabit => 3,
},
medium => 1,
large => 2,
},
);
my @keys = keys %{$hash{name}}; ==> result:large small medium...3.
my @keys = keys %{$hash{name{small}}};==> Can't locate object method "name" via package "small" (perhaps you forgot to load "small"?) at hash line 20.
my $keys = @keys;
print "@keys...$keys.\n"
为什么无法获取第三层的hash keys,而第二层则正常?
![perl 第三层hash 提取keys 错误](/uploads/image/z/17522993-65-3.jpg?t=perl+%E7%AC%AC%E4%B8%89%E5%B1%82hash+%E6%8F%90%E5%8F%96keys+%E9%94%99%E8%AF%AF)
keys %{$hash{name{small}}}需要修改为
keys %{$hash{name}{small}}
再问: 所以无论多少层的hash,用这个方法是可以读取任意层数的keys值了吧。
再答: 理论上是的,不过显然这么多层的初始化很少用到。
keys %{$hash{name}{small}}
再问: 所以无论多少层的hash,用这个方法是可以读取任意层数的keys值了吧。
再答: 理论上是的,不过显然这么多层的初始化很少用到。