如何访问perl Hashed object的单个元素?

cvxl0en2  于 2023-08-06  发布在  Perl
关注(0)|答案(1)|浏览(137)

我是一个非程序员试图从我们的InfoBlox DHCP箱检索有用的信息。我已经安装了Perl API,可以使用它了。
我从Data::Dumper“thingie”中得到了一个输出,它似乎包含了一些我想要的信息。我想直接引用其中的一些数据,但我不确定如何引用。
打印转储程序($对象)
以下是Data::Dumper输出的一部分;

$VAR1 = \bless( {
    'network' => '10.183.1.0/24',
    'override_lease_scavenge_time' => 'false',
    'enable_ifmap_publishing' => 'false',
    'low_water_mark_reset' => '10',
    'use_lease_time' => 0,
    'use_enable_option81' => 0,
    'network_container' => '/',
    'override_ddns_ttl' => 'false',
    'rir' => 'NONE',
    'network_view' => bless( {

<snip> --------------------------------------
    'extattrs' => {
      'Use' => bless( {
        'value' => 'Voip'
      }, 'Infoblox::Grid::Extattr' )
    },
<snip> --------------------------------------
    'members' => [
      bless( {
        'ipv4addr' => '10.85.9.242',
        'name' => 'ig3-app3.my.net'
      }, 'Infoblox::DHCP::Member' ),
      bless( {
        'ipv4addr' => '10.85.9.210',
        'name' => 'ig3-app1.my.net'
      }, 'Infoblox::DHCP::Member' ),
      bless( {
        'ipv4addr' => '10.85.9.226',
        'name' => 'ig3-app2.my.net'
      }, 'Infoblox::DHCP::Member' )
    ],
    'override_ignore_client_identifier' => 'false',
    'email_list' => undef,
    'rir_registration_status' => '??
  }, 'Infoblox::DHCP::Network' );

字符串
如何查看元素?即...

print $object{members->name};
print $object{members->ipv4addr};

print $object{extattrs->Use->value};


我发现API对于我的技能水平来说是不够的:)我想提取的数据仍然遥不可及。

my @retrieved_objs = $session->search (
        object          => "Infoblox::DHCP::Network",
        network         => '.*\.*\.*\..*',

);

        foreach $object ( @retrieved_objs ) {
                my $network = $object->network;
                my $comment = $object->comment;
                my $extattrs    = $object->extattrs;
                my $options = $object->options;
                print $network, " network ", $comment, " ", $extattrs, "  ", $options, "\n";
}

  • 输出-
    10.183.2.0/24:地址
    10.192.1.0/24散列(0x 9df 6540)数组(0x 9df 5468)
    10.192.2.0/24散列(0xa 088 fc 8)数组(0xa 089718)
5uzkadbs

5uzkadbs1#

你不应该试图直接访问一个对象的内部值。模块-在本例中为Infoblox::DHCP::Network,将提供 * 方法 *,允许您正确读取或操作值。

相关问题