AFAIK, the parameters passed in a WSDL tranaction are in XML format, so I think the PHP classes at some point serialize to XML, though that is not obvious from the PHP code you posted. From what I could make out of SOAP::WSDL::Manual - Accessing WSDL based web services, you will need to create a class (or classes) which is a subclass of SOAP::WSDL::XSD::Typelib::ComplexType and then use that in much the same way as the PHP call does. The information you need to define your classes will be in the wsdl file somewhere, though you might be able to just adapt what's there in the PHP.
in reply to Re^4: Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl
in thread Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl
Update - Looking at the docs again, it gives this example:
It says "Your data is serialized according to the rules in the WSDL" so it looks like you could feed in your wsdl file and then see what it expects %data to be. And do hang around for a bit, I'm sure someone else here can s/:-(/:-)/
my $soap = SOAP::WSDL->new(
wsdl => 'file://bla.wsdl',
my $result = $soap->call('MyMethod', %data);