作业帮 > 英语 > 作业

perl 第三层hash 提取keys 错误

来源:学生作业帮 编辑:作业帮 分类:英语作业 时间:2024/05/24 06:31:02
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,而第二层则正常?
keys %{$hash{name{small}}}需要修改为
keys %{$hash{name}{small}}
再问: 所以无论多少层的hash,用这个方法是可以读取任意层数的keys值了吧。
再答: 理论上是的,不过显然这么多层的初始化很少用到。