#!/usr/bin/perl use SOAP::Lite +trace; use strict; my $soap = SOAP::Lite->new( proxy =>'http://xxxx'); my $serializer = $soap->serializer(); $soap->on_action( sub { "urn:addrequest" }); $soap->autotype(0)->readable(1); $soap->default_ns('http://xxxx.com/xxxAPI'); my $som = $soap->call('add-own', SOAP::Data->name('own:login-info')->value( \SOAP::Data->value([ SOAP::Data->name('own:user-name')->value( 'abc123' ), SOAP::Data->name('own:password')->value('*****'), SOAP::Data->name('own:account-number')->value('101'), ])), SOAP::Data->name('own:add-owner')->value( \SOAP::Data->value([ SOAP::Data->name('own:owner-info')->value( \SOAP::Data->value([ SOAP::Data->name('own:first-name')->value('xyz'), SOAP::Data->name('own:last-name')->value('con'), SOAP::Data->name('own:address1')->value('400 man st'), SOAP::Data->name('own:city')->value('SFO'), SOAP::Data->name('own:state')->value('CA'), SOAP::Data->name('own:country')->value('US'), SOAP::Data->name('own:zip')->value('90405'), SOAP::Data->name('own:phone')->value('3100000000'), SOAP::Data->name('own:email')->value('test@gmail.com'), ])), SOAP::Data->name('add-numbers') ->attr({'number-type'=> 'intl'}) ])) ## ]))])) ); die $som->fault->{ faultstring } if ($som->fault); print $som->result, "\n";