Perl Hash of Hashes



我是Perl的新手,我正在尝试使用哈希尝试一些东西。我有一个像下面的哈希相似:

%HoH =   
(
    "Test1" => { checked => 1, mycmd => run1 },
    "Test2" => { checked => 1, mycmd => run2 },
)

使用以下代码我将获得以下输出:

for $family ( keys %HoH ) 
{
    print "$family: ";
    for $role ( keys %{ $HoH{$family} } ) 
    {
        print "$role=$HoH{$family}{$role} ";
    }
    print "n";
}

输出:

Test1: checked=1 mycmd=run1 
Test2: checked=1 mycmd=run2

我的问题是,如何访问个人checked&cmd分别?通过单独访问,我可以比较检查的内容并完成我的任务。

只能使用关键字(s)字面上是很简单的:

%HoH =   
(
    "Test1" => { checked => 1, cmd => run1 },
    "Test2" => { checked => 1, cmd => run2 },
);
if ($HoH{"Test1"}{checked}) {
print "Test1 is Checked with cmd: " . $HoH{"Test1"}{cmd} . "n";
}

test1用cmd检查:run1

我是否正确理解了您的问题?

for my $family ( keys %HoH )
{
    if ($HoH{$family}->{checked}) {
         # Do what you want...
    }
}

最新更新