2015-12-21 88 views
0

我們有一個用Perl編寫的客戶端代碼,它試圖連接到一個WebService來進行API調用。如何獲取perl腳本中的二維數組數據?

  1. 這個API調用是用java寫的,它返回一個2-Dimemsion字符串數組。
  2. 這裏是客戶端的代碼:
 

    eval { 
      $service = SOAP::Lite->service("some WS link here"); 
    }; 
    if ($exception = [email protected]) { 
      print("Failed to connect to WS: $exception"); 
      return 0; 
    } 

    my $status; 
    eval { 
      $status = $service->getStatus(); 
    }; 
    if ($exception = [email protected]) { 
      print("$exception"); 
      return 0; 
    } 

我的問題是如何從這個「$狀態」值提取的實際數據。當我打印這個「$ status」值時,我只能看到:

 

    DB> p $status 
    stringArrayArray=HASH(0x126e2ac0) 
    DB> 

回答

1

這意味着你的模塊已經返回了一個散列引用。你可以看到它的內容。 Data::Dumper

或者:

foreach my $key (keys %$status) { 
    print "$key => ", $status -> {$key}, "\n"; 
} 

參見:perlref

+0

感謝您的提示。但是如果我使用Data :: Dumper,這就是我所得到的:$ VAR1 = bless({0} {0} {0} {'item'=> undef } },'stringArrayArray');這完全失去了我。 – user3595231

+0

你的API正在返回垃圾。這就是你的問題的根源 - 你有一個可以訪問的嵌套散列:'$ service - > {item} - > {item}'但它是未定義的。 – Sobrique

+0

感謝您的幫助。網絡服務方面存在一個小問題。並且在我將它修好之後,這裏是來自翻斗車的全套數據,「$ VAR1 = { 'item'=>'0' } }; 」。但是包裝中仍然沒有實際的數據。我想我的問題是客戶端(perl)真的可以從ws獲得全套響應嗎? – user3595231

相關問題