use LWP; use HTTP::Date "time2isoz"; my $lattitude = 30.29; my $longitude = -97.74; (my $time = time2isoz()) =~ s/ /T/; my $numDays = 3; my $format="12 Hourly"; my $server = 'http://www.nws.noaa.gov'; my $endpoint = "$server/forecasts/xml/SOAP_server/ndfdXMLserver.php"; my $soapaction = "$server/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl#NDFDgenByDay"; my $content = < xmlns:ndfd="http://www.nws.noaa.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl"> $lattitude $longitude $startDate $numDays $format REQUEST print $content; $ua = LWP::UserAgent->new(); $request = HTTP::Request->new(POST => $endpoint); $request->header(SOAPAction => '"$soapaction"'); $request->content($content); $request->content_type("text/xml; charset=utf-8"); $response = $ua->request($request); if ( $response->code == 200 ) { print $response->content; }