Perl-从多级哈希获取哈希值

SL07

我有一个3维哈希,我需要在其中提取数据。我需要在vuln_soft-> prod下提取名称和供应商。到目前为止,我设法通过使用以下代码来提取“ cve_id”:

foreach my $resultHash_entry (keys %hash){
    my $cve_id = $hash{$resultHash_entry}{'cve_id'};
}

有人可以提供有关如何提取名称和供应商的解决方案。提前致谢。

%hash = {
    'CVE-2015-6929' => {
        'cve_id'    => 'CVE-2015-6929',
        'vuln_soft' => {
            'prod' => {
                'vendor' => 'win',
                'name'   => 'win 8.1',
                'vers'   => {
                    'vers' => '',
                    'num'  => ''
                }
            },            
        'prod' => {
            'vendor' => 'win',
            'name'   => 'win xp',
            'vers'   => {
                'vers' => '',
                'num'  => ''
            }
        }
    },
    'CVE-2015-0616' => {
        'cve_id'    => 'CVE-2015-0616',
        'vuln_soft' => {
            'prod' => {
                'name'   => 'unity_connection',
                'vendor' => 'cisco'
            }
        }
    }
}
斯蒂维布

首先,使用初始化哈希my %hash = (...);(请注意括号,而不是花括号)。使用{}声明您已完成的哈希引用。你应该总是use strict;use warnings;

要回答这个问题:

for my $resultHash_entry (keys %hash){
    print "$hash{$resultHash_entry}->{vuln_soft}{prod}{name}\n";
    print "$hash{$resultHash_entry}->{vuln_soft}{prod}{vendor}\n";
}

...可以稍微简化为:

for my $resultHash_entry (keys %hash){
    print "$hash{$resultHash_entry}{vuln_soft}{prod}{name}\n";
    print "$hash{$resultHash_entry}{vuln_soft}{prod}{vendor}\n";
}

因为Perl始终肯定会知道任何比第一个更深的条目始终是引用,所以->这里不需要deref运算符

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl获取嵌套哈希值

来自分类Dev

Perl获取嵌套哈希值

来自分类Dev

Perl按哈希数组或哈希哈希中的哈希值排序

来自分类Dev

在Perl中的简单哈希中转换多级哈希

来自分类Dev

Perl中哈希的哈希,获取密钥

来自分类Dev

如何找到Perl多级哈希中的哪些键对应于给定值?

来自分类Dev

perl哈希for循环获取数字

来自分类Dev

如何从Perl中的哈希获取最小值键

来自分类Dev

Perl“或”条件以在同一键中获取哈希值

来自分类Dev

从Perl哈希中的一维获取所有值

来自分类Dev

Perl:如何获取按键排序的嵌套哈希值?

来自分类Dev

Perl哈希提供undef值

来自分类Dev

Perl中的双哈希值

来自分类Dev

Perl哈希提供undef值

来自分类Dev

Perl哈希哈希

来自分类Dev

访问Perl中的哈希值的哈希值最高?

来自分类Dev

Perl,帮助访问哈希值中的值

来自分类Dev

Perl哈希哈希,获取最低数字键

来自分类Dev

Perl在单个哈希本身中获取哈希键值计数

来自分类Dev

如何为每个子哈希 Perl 增加哈希值

来自分类Dev

如何获取Perl JSON访问哈希参考

来自分类Dev

从Perl哈希表存储和获取值

来自分类Dev

获取数组哈希-Perl中的键

来自分类Dev

在Perl中更改哈希值的输出

来自分类Dev

使用Javascript函数检索Perl哈希值

来自分类Dev

Perl:哈希值后的数组排序

来自分类Dev

在Perl中访问哈希值(数组)

来自分类Dev

如果发现重复则删除Perl哈希值

来自分类Dev

在Perl中更改哈希值的输出