{ "test.file" => { type => "file-6ren">
gpt4 book ai didi

perl - 使用数组寻址哈希的哈希

转载 作者:行者123 更新时间:2023-12-02 08:46:58 25 4
gpt4 key购买 nike

这是我的问题:

我有一个类似数据结构的文件系统:

%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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com