作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
{ "test.file" => { type => "file-6ren">
这是我的问题:
我有一个类似数据结构的文件系统:
%fs = (
"home" => {
"test.file" => {
type => "file",
owner => 1000,
content => "Hello World!",
},
},
"etc" => {
"passwd" => {
type => "file",
owner => 0,
content => "testuser:testusershash",
},
"conf" => {
"test.file" => {
type => "file",
owner => 1000,
content => "Hello World!",
},
},
},
);
现在,要获取 /etc/conf/test.file
的内容,我需要 $fs{"etc"}{"conf"}{"test.file"}{ "content"}
,但我的输入是一个数组,看起来像这样:("etc","conf","test.file")
。
因此,由于输入的长度不同,我不知道如何访问散列值。有什么想法吗?
最佳答案
您可以使用循环。在每一步中,您都在结构中深入一个层次。
my @path = qw/etc conf test.file/;
my %result = %fs;
while (@path) {
%result = %{ $result{shift @path} };
}
print $result{content};
您还可以使用 Data::Diver .
关于perl - 使用数组寻址哈希的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11738812/
我是一名优秀的程序员,十分优秀!