http://www.perlmonks.org?node_id=1008212


in reply to Help with SOAP::Lite error

Martin Kutter (the author of this module) conveyed that I could be missing an API, which I am still not sure of as I went through all the documentation. Can you please help review this and point out the error? Thanks

He said what?

If you change that line in SOAP.pm to  ? (%{$_[$param]} = eval{%$$value}||%$value)

Then you won't get the error, but whether that is the correct thing, I have no idea (if it is , then surely other parts need patching)

Replies are listed 'Best First'.
Re^2: Help with SOAP::Lite error
by Anonymous Monk on Dec 11, 2012 at 16:15 UTC

    He suggested that I might not be using an API correctly but I don't know what it is. I looked at the 0.60a version and created a patch and sent it to the author to get it reviewed and I wasn't sure if I am breaking something else. Here are the changes, please help review and bless them :)

    diff C:/Perl/site/lib/SOAP/Lite_0.715.pm C:/Perl/site/lib/SOAP/Lite.p +m 1964,1973c1964 < if ( defined o_child($node) ) { < my @children; < foreach my $child ( @{ o_child($node) } ) { < push( @children, $self->_as_data($child) ); < } < $data->set_value( \SOAP::Data->value(@children) ); < } < else { < $data->set_value( o_value($node) ); < } --- > $data->set_value( o_value($node) ); 1993c1984 < die "Incorrect parameter" unless $itself =~/^\d$/; --- > die "Incorrect parameter" unless $itself =~ /^\d*$/;

      He suggested that I might not be using an API correctly but I don't know what it is

      He suggested what?

      See, I can repeat myself also :)

      Here are the changes, please help review and bless them :)

      No thanks, I hate SOAP (especially ancient SOAP), autoload and autodispatch, and isolated patches without tests for modules I don't maintain -- I'm not qualified

        Thanks for the hint on tests. I executed all tests that come with the module against my patch and all of them passed :)

        C:\SOAP-Lite-0.715>dmake test C:\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/01-core.t t/010-serializer.t t/012-cloneab +le.t t/013 -array-deserialization.t t/014_UNIVERSAL_use.t t/015_UNIVERSAL_can.t t +/02-payloa d.t t/03-server.t t/04-attach.t t/05-customxml.t t/06-modules.t t/07-x +mlrpc_payl oad.t t/08-schema.t t/096_characters.t t/097_kwalitee.t t/098_pod.t t/ +099_pod_co verage.t t/SOAP/Data.t t/SOAP/Serializer.t t/SOAP/Lite/Packager.t t/SO +AP/Lite/De serializer/XMLSchema1999.t t/SOAP/Lite/Deserializer/XMLSchema2001.t t/ +SOAP/Lite/ Deserializer/XMLSchemaSOAP1_1.t t/SOAP/Lite/Deserializer/XMLSchemaSOAP +1_2.t t/SO AP/Schema/WSDL.t t/SOAP/Transport/HTTP.t t/SOAP/Transport/IO.t t/SOAP/ +Transport/ LOCAL.t t/SOAP/Transport/MAILTO.t t/SOAP/Transport/POP3.t t/SOAP/Trans +port/HTTP/ CGI.t t/XML/Parser/Lite.t t/XMLRPC/Lite.t t/01-core.t .................................. ok t/010-serializer.t ........................... ok t/012-cloneable.t ............................ ok t/013-array-deserialization.t ................ ok t/014_UNIVERSAL_use.t ........................ ok t/015_UNIVERSAL_can.t ........................ ok t/02-payload.t ............................... ok t/03-server.t ................................ ok t/04-attach.t ................................ ok t/05-customxml.t ............................. ok t/06-modules.t ............................... ok t/07-xmlrpc_payload.t ........................ ok t/08-schema.t ................................ ok t/096_characters.t ........................... skipped: (no reason giv +en) t/097_kwalitee.t ............................. skipped: (no reason giv +en) t/098_pod.t .................................. skipped: (no reason giv +en) t/099_pod_coverage.t ......................... skipped: (no reason giv +en) t/SOAP/Data.t ................................ ok t/SOAP/Lite/Deserializer/XMLSchema1999.t ..... ok t/SOAP/Lite/Deserializer/XMLSchema2001.t ..... ok t/SOAP/Lite/Deserializer/XMLSchemaSOAP1_1.t .. ok t/SOAP/Lite/Deserializer/XMLSchemaSOAP1_2.t .. ok t/SOAP/Lite/Packager.t ....................... ok t/SOAP/Schema/WSDL.t ......................... ok t/SOAP/Serializer.t .......................... ok t/SOAP/Transport/HTTP.t ...................... ok t/SOAP/Transport/HTTP/CGI.t .................. ok t/SOAP/Transport/IO.t ........................ ok t/SOAP/Transport/LOCAL.t ..................... ok t/SOAP/Transport/MAILTO.t .................... skipped: Cannot test wi +thout Test ::MockObject t/SOAP/Transport/POP3.t ...................... ok t/XML/Parser/Lite.t .......................... ok t/XMLRPC/Lite.t .............................. ok All tests successful. Files=33, Tests=870, 8 wallclock secs ( 0.36 usr + 0.16 sys = 0.51 +CPU) Result: PASS