#! /usr/bin/perl use SOAP::Lite +trace => 'debug'; use Data::Dumper; # .NET web services expect / as a separator # for uri and method. my $lite = SOAP::Lite->new()->on_action(sub { join '/', @_ } ) ->proxy('http://somewhere.net/rjam-request-service/svc/RequestService/3?wsdl') ->readable(1); $response = $lite->call( SOAP::Data->name('fetchAndLock') ->attr({ 'xmlns', 'http://somewhere.net/request/service/3' }), SOAP::Data->name("first")->value(3), SOAP::Data->name("max")->value(1), SOAP::Data->name("provider")->value('homeFolderWin'), SOAP::Data->name("action")->value('bestMatch'), SOAP::Data->name("state")->value('PLACED') ); my $tmp_data = $response->valueof('[1]'); print Dumper($tmp_data); my $lts=$tmp_data->dataof('//fetchAndLockResponse/request/lockedTimes');