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(); #### India #### POST /globalweather.asmx HTTP/1.1 Host: www.webservicex.net Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://www.webserviceX.NET/GetCitiesByCountry" string