I wanted to build an awesome place for people to discuss module specific issues, but I don't have any more time for this, and there are much better places to discuss Perl-related issues. I'd recommend asking your question on Stack Overflow or on Perl Monks.
If you are looking for a Perl tutorial or Perl-related news, I hope these links will serve you well.
Posted on 2009-10-30 12:53:17-07 by marcel
retrieving array output
I am sorry, but somehow I just don't get it how to retrieve some data from the Array... I try to get the data from get_pullgbdtableReturn_get_records_get_WSGbdRecord_get_tableRecord() but run into the error "Can't call method "get_tableRecord" on unblessed reference at " retrieving scalar data is working fine: get_pullgbdtableReturn_get_tableInfo_get_name What did I forget, or doring wrong? Please can you give me a helping hand...
----------------------------------------------------------------------------------------------------
Output: from perldoc PA_GBDA_Elements::pullgbdtableResponse
----------------------------------------------------------------------------------------------------
print $element->get_pullgbdtableReturn(); { pullgbdtableReturn => { # PA_GBDA_Types::WSGbdResult tableInfo => { # PA_GBDA_Types::WSGbdTableInfo name => $some_value, # string structure => { # PA_GBDA_Types::ArrayOfWSGbdColumnInfo WSGbdColumnInfo => { # PA_GBDA_Types::WSGbdColumnInfo name => $some_value, # string size => $some_value, # string type => $some_value, # string }, }, businesskey => $some_value, # string }, headers => { # PA_GBDA_Types::ArrayOfWSGbdHeader WSGbdHeader => { # PA_GBDA_Types::WSGbdHeader name => $some_value, # string columnTitles => $some_value, # string }, }, records => { # PA_GBDA_Types::ArrayOfWSGbdRecord WSGbdRecord => { # PA_GBDA_Types::WSGbdRecord tableRecord => $some_value, # string codeMappings => { # PA_GBDA_Types::ArrayOf_xsd_nillable_string string => $some_value, # string }, codeLabels => { # PA_GBDA_Types::ArrayOf_xsd_nillable_string string => $some_value, # string }, }, }, }, },
----------------------------------------------------------------------------------------------------
Perl-Program:
----------------------------------------------------------------------------------------------------
. . . # print $response->get_pullgbdtableReturn()->get_tableInfo->get_name ."\n"; print $response->get_pullgbdtableReturn()->get_tableInfo->get_businesskey ."\n"; # print $response->get_pullgbdtableReturn()->get_records() . "\n" ; print $response->get_pullgbdtableReturn()->get_records()->get_WSGbdRecord() . "\n" ; print $response->get_pullgbdtableReturn()->get_records()->get_WSGbdRecord()->get_tableRecor +d() . "\n" ; # use Data::Dumper ; #print Dumper ( $response->get_pullgbdtableReturn()->get_records()->get_WSGbdRecord()->get_ +tableRecord() ) ; my @gbda_table_records = $response->get_pullgbdtableReturn()->get_records()->get_WSGbdReco +rd() ; foreach $gbda_table_record (@gbda_table_records) { use Data::Dumper ; print Dumper ( $gbda_table_record ) ; #print $gbda_table_record . "\n" ; # print Dumper $gbda_table_record->get_WSGbdRecord ; # #print $gbda_table_records . "\n"; # #print "\n"; # #print defined( $gbda_table_record->get_WSGbdRecord(0) ) , "\n" ; # #print $gbda_table_record->get_tableRecord() , "\n" ; } #
----------------------------------------------------------------------------------------------------
Output: from Perl Code:
----------------------------------------------------------------------------------------------------
gma021@cceulx044:/home/gma021/development/test > ./test_PA_GBDA_04.pl country countrycodea2|countrycodea3|countrycoden3 <WSGbdRecord xmlns=""><tableRecord>&apos;986&apos;</tableRecord><codeMappings xmlns=""></codeMappin +gs><codeLabels xmlns=""></codeLabels></WSGbdRecord><WSGbdRecord xmlns=""><tableRecord>&apos;MOO&ap +os;</tableRecord><codeMappings xmlns=""></codeMappings><codeLabels xmlns=""></codeLabels></WSGbdRe +cord><WSGbdRecord xmlns=""><tableRecord>&apos;Moo&apos;</tableRecord><codeMappings xmlns=""></code +Mappings><codeLabels xmlns=""></codeLabels></WSGbdRecord><WSGbdRecord xmlns=""><tableRecord>&apos; +ada&apos;</tableRecord><codeMappings xmlns=""></codeMappings><codeLabels xmlns=""></codeLabels></W +SGbdRecord> ARRAY(0x14d2af0) Can't call method "get_tableRecord" on unblessed reference at ./test_PA_GBDA_04.pl line 102. gma021@cceulx044:/home/gma021/development/test >
----------------------------------------------------------------------------------------------------
Direct Responses: 11784 | Write a response
Posted on 2009-11-20 04:45:52-08 by noah in response to 11667
Re: retrieving array output

Without your WSDL I can't verify for certain, but here's what I suspect: you can't call get_tableRecord because, as seen in your output, the result of get_WSGbdRecord() is an array; what you have is a perl array of WSGbdRecord objects, which you can iterate over.

--noah
Direct Responses: Write a response