use SOAP::Lite +trace => all; $soap = SOAP::Lite -> uri('http://www.webservicex.net') -> on_action( sub { join '/', 'http://www.webserviceX.NET', $_[1] } ) -> proxy('http://www.webservicex.net/globalweather.asmx'); my $method = SOAP::Data->name('GetCitiesByCountry') ->attr({xmlns => 'http://www.webserviceX.NET/'}); my $param = SOAP::Data->name("CountryName" =>"India"); $result= $soap->call($method,$param)->result();