use SOAP::Lite +trace; use strict; my $client = SOAP::Lite ->readable(1) ->uri('http://somewebsite.net/RequestService/3?wsdl') ->proxy('http://somewebsite.net/RequestService/3?wsdl'); my $temp_elements = SOAP::Data ->name("CallDetails" => \SOAP::Data->value( SOAP::Data->name("first" => '8'), SOAP::Data->name("max" => '1'), SOAP::Data->name("provider" => 'homeFolderWin'), SOAP::Data->name("action" => 'bestMatch'), SOAP::Data->name("state" => 'PLACED')) ); my $response = $client->fetchAndLock($temp_elements);