2016-04-07 7 views
0

私はPerlの初心者です。私は祝福されたハッシュから価値を得ようとしています。祝福されたハッシュで値を探す

値がIP住所があり、私はあなたがダンプされているものは何でもありません成功

print $vm->guest->ipStack->dnsConfig->ipAddress; 

print $vm->guest->ipStack{dnsConfig}{ipAddress}; 


$VAR1 = [ 
    bless({ 

     "ipRouteConfig" => bless({ 

      "ipRoute" => [ 

       bless({ 
        "gateway" => bless({ 
         "device" => 0, 
         "ipAddress" => "10.*******" 
        }, 'NetIpRouteConfigInfoGateway'), 
        "network" => "0.0.0.0", 
        "prefixLength" => 0 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "network" => "1***********", 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway'), 
        "prefixLength" => 23 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 32, 
        "network" => "10**************", 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway') 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 32, 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway'), 
        "network" => "1***********5" 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 4, 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway'), 
        "network" => "224.0.0.0" 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway'), 
        "network" => "255.255.255.255", 
        "prefixLength" => 32 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 64, 
        "network" => "fe80::", 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway') 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 128, 
        "network" => "fe80::", 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway') 
       }, 'NetIpRouteConfigInfoIpRoute'), 

       bless({ 
        "prefixLength" => 8, 
        "network" => "ff00::", 
        "gateway" => bless({ 
         "device" => 0 
        }, 'NetIpRouteConfigInfoGateway') 
       }, 'NetIpRouteConfigInfoIpRoute') 
      ] 

     }, 'NetIpRouteConfigInfo'), 

     "dnsConfig" => bless({ 
      "dhcp" => 0, 
      "searchDomain" => [ 
       "france" 
      ], 
      "hostName" => "HOST", 
      "ipAddress" => [ 
       "10.60****", 
       "10.6*****", 
       "10.8*****" 
      ], 
      "domainName" => "france" 
     }, 'NetDnsConfigInfo') 

    }, 'GuestStackInfo') 
] 
+1

vmware sdkのどのバージョンですか?あなたはドキュメントを持っていますか?あなたはあなたの質問を編集し、Data :: Dumper出力を生成するコードを追加できますか? – simbabque

答えて

3

を持つ配列ではなく、ハッシュであることを試してみました。あなたは、これは祝福されたオブジェクトの構造、あるので、あなたは「バックドアによってつもりはない、情報にアクセスするためにそれらのメソッドを使用する必要があり、私たちはまた、適切

をお手伝いをするDumperへの呼び出しを表示する必要があります"データ構造を直接乱す。私はここで

適切であるかもしれないものメソッドの呼び出しを提案することはできませんので、残念ながら GuestStackInfoNetDnsConfigInfoは、VMwareのクラスではなく、標準的なPerlの種類の一つであり、いくつかのノートは $VAR1によって参照される構造である

  • ですGuestStackInfoオブジェクト

  • GuestStackInfoオブジェクトを含む1要素のアレイはNetIpRouteConfigInfoオブジェクトとNetDnsConfigInfoオブジェクトを含みます。私はあなたが言うように、あなたが後者に興味があると仮定は、最寄りのハッシュキーは

  • ipAddress要素は、IPアドレスの配列への参照ですNetDnsConfigInfoオブジェクトでipAddressです「値は、IP住所があります」様の文字列

あなたは

my $addresses = $VAR1->[0]{dnsConfig}{ipAddress}; 

を書き、その後になり、この配列にアクセスするにはあなたは、このようなデータ構造の周り突っついメソッド呼び出しを使用していないされなければならない - 私の最初のコメントのに注意してご利用ください、それらすべてをプリントアウト

print "$_\n" for @$addresses; 

を使用しかし。これらのクラスのドキュメントはありますか?

+0

ありがとうございます。 私はドキュメントクラスを探します。 –

関連する問題