2009/7/16 John W. Krahn <jwkr...@shaw.ca>:
> Nick Brown wrote:
>>
>> On Jul 15, 11:15 am, jwkr...@shaw.ca (John W. Krahn) wrote:
>>>
>>> Nick Brown wrote:
>>>>
>>>> I'm trying to use Finance::OFX::Response to use a ofx statement I've
>>>> it downloaded from by bank website.
>>>> http://search.cpan.org/~bfoz/p5-Finance-OFX-20080303/lib/Finance/OFX/...
>>>> However there I'm getting the following perl compilation error:
>>>> Type of arg 1 to each must be hash (not subroutine entry) at
>>>> download_statements.pl line 67, near "->ofx ) "
>>>> for the below code:
>>>> $response = $mech->get($download_url . $count);
>>>>   if (!$response->is_success) {
>>>>       die 'Failed to load statements URL';
>>>>   }
>>>>   $response = $mech->submit_form(form_name => $download_form_name,
>>>> button => \
>>>> 'btnDownload');
>>>>   if (!$response->is_success) {
>>>>       die 'Failed to get Statement Download';
>>>>   }
>>>>   #print $mech->content();
>>>>   my $ofx_response =
>>>> Finance::OFX::Response->from_http_response($response);
>>>>   while( my ($k, $v) = each $ofx_response->ofx ) {
>>>>       print "key: $k, value: $v.\n";
>>>>   }
>>>> Can you suggest what is wrong the while loop I'm trying to use to
>>>> print the hash tree of the OFX?
>>>
>>> values(), keys() and each() require that their first argument must be a
>>> hash so if $ofx_response->ofx returns a reference to a hash then you
>>> have to dereference it:
>>>
>>>    while( my ($k, $v) = each %{ $ofx_response->ofx } ) {
>>>        print "key: $k, value: $v.\n";
>>>    }
>>
>> Thanks, I've added the deference to the hash and it now compiles and
>> executes.
>> However I'm now getting a different run time error:
>>
>> Odd number of elements in hash assignment at
>> /usr/lib/perl5/vendor_perl/5.10.0/Finance/OFX/Parse.pm line 105, <>
>> line 1.
>> Use of uninitialized value $header{"OFXHEADER"} in numeric eq (==) at
>> /usr/lib/perl5/vendor_perl/5.10.0/Finance/OFX/Parse.pm line 107, <>
>> line 1.
>> Can't use an undefined value as a HASH reference at
>> download_statements.pl line 67, <> line 1.
>>
>> Do you have any suggestions to the cause of the this error? What
>> causing the undefine value as a HASH reference?
>
> Your best bet is to find out exactly what $ofx_response->ofx is returning.
>  Try something like:
>
> use Data::Dumper;
>
> print Dumper $ofx_response->ofx;

looks like its returning nothing!

Odd number of elements in hash assignment at
/usr/lib/perl5/vendor_perl/5.10.0/Finance/OFX/Parse.pm line 105, <>
line 1.
Use of uninitialized value $header{"OFXHEADER"} in numeric eq (==) at
/usr/lib/perl5/vendor_perl/5.10.0/Finance/OFX/Parse.pm line 107, <>
line 1.
$VAR1 = undef;

Which is strange as
http://search.cpan.org/~bfoz/p5-Finance-OFX-20080303/lib/Finance/OFX/Parse.pm
suggest that ofx_response->ofx should be a reference to a hash tree.
So it looks like
Finance::OFX::Response->from_http_response($response); must be failing
to parse and displaying the above error.
Certainly $response->contents contains a OFX file that I grabbed as I
can print it just fine.
Hmmm... so I think I'm stuck.


Thanks,
Nick

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to