in reply to Setting up Google AdWords API v200909 - compilation error
SOAP/Deserializer.pm did not return a true value at (eval 93) line 3. ...propagated at /usr/lib/perl5/5.8.8/base.pm line 85. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/ Google/AdWords/Deserializer.pm line 24.
Line 24 of Google/AdWords/Deserializer.pm reads
use SOAP::Lite; use base qw(SOAP::Deserializer);
The code for the package SOAP::Deserializer is contained in the file SOAP/Lite.pm. In other words, there is normally no SOAP/Deserializer.pm file — at least not in the current SOAP::Lite release. OTOH, base checks if there exists a package variable $SOAP::Deserializer::VERSION (which doesn't in this case), and if not tries to load SOAP/Deserializer.pm. This is all fine as long as there is in fact no such file, as the error "Can't locate SOAP/Deserializer.pm at..." would silently be ignored by base.
Now, the thing is that you do seem to have such a file (as the error message indicates), and apparently one which doesn't return a true value when required, which is an error condition that base does not ignore... Further support for this theory is that if I put an empty Deserializer.pm file in my SOAP-Lite installation, I can reproduce the issue:
$ perl -MSOAP::Lite -e'use base qw(SOAP::Deserializer);' SOAP/Deserializer.pm did not return a true value at (eval 80) line 3. ...propagated at /usr/lib/perl5/5.10.1/base.pm line 93. BEGIN failed--compilation aborted at -e line 1.
So, check if you maybe also have such a stray Deserializer.pm file...
Anyhow, the short version of all this is that replacing the above line (in Google/AdWords/Deserializer.pm)
use base qw(SOAP::Deserializer);
with
BEGIN { our @ISA = "SOAP::Deserializer"; }
should also fix the issue...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Setting up Google AdWords API v200909 - compilation error
by JWSlogger (Initiate) on Jun 01, 2010 at 18:56 UTC | |
by almut (Canon) on Jun 01, 2010 at 19:07 UTC | |
by JWSlogger (Initiate) on Jun 01, 2010 at 19:59 UTC |