加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

迭代Perl中的祝福对象

发布时间:2020-12-16 06:16:50 所属栏目:大数据 来源:网络整理
导读:我正在研究一些使用BigIP :: iControl模块查询F5负载均衡器的代码. 现在,当我从特定函数返回的变量上执行Dumper时,我得到以下输出. 我在迭代这个对象时遇到了很多麻烦. 我怎么能迭代这个并且只为每个成员取出monitor_status? $VAR1 = [ bless( [ bless( { '
我正在研究一些使用BigIP :: iControl模块查询F5负载均衡器的代码.

现在,当我从特定函数返回的变量上执行Dumper时,我得到以下输出.

我在迭代这个对象时遇到了很多麻烦.

我怎么能迭代这个并且只为每个成员取出monitor_status?

$VAR1 = [
          bless( [
                   bless( {
                            'monitor_status' => 'MONITOR_STATUS_UP','member' => bless( {
                                               'address' => '127.0.0.0.1','port' => '8085'
                                             },'Common::IPPortDefinition' )
                          },'LocalLB::PoolMember::MemberMonitorStatus' ),bless( {
                            'monitor_status' => 'MONITOR_STATUS_UP',bless( {
                            'monitor_status' => 'MONITOR_STATUS_DOWN','LocalLB::PoolMember::MemberMonitorStatus' )
                 ],'LocalLB::PoolMember::MemberMonitorStatus[]' )
        ];

解决方法

我不确定这些成员变量是否公开 – 我不熟悉所使用的模块 – 所以这可能违反了LocalLB :: PoolMember :: MemberMonitorStatus类的封装.你应该在使用前检查.

for my $mms ( @{$VAR1->[0]} ) {
    warn $mms->{monitor_status};
}

最好检查MemberMonitorStatus类是否提供访问器,以及可能是成员监视器状态数组的迭代器.

上面的测试只是将您的Dumper输出粘贴到Perl脚本中,并根据眼球的数据结构实现for循环的代码.

(编辑:基于Google缓存中的F5 webcentral文档,可能是MemberMonitorStatus是底层代码中的一个简单结构,在Perl中作为具有两个成员变量的类公开 – 但没有行为.如果是这样,上面可能是好.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读