This ruby code works great:
require 'soap/wsdlDriver'
wsdl_url = 'http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl'
proxy = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver
print proxy.NDFDgen(35.05,-106.65,"glance","2010-11-20T00:00:00","2010-11-20T07:00:00","temp")
This Perl code returns an empty string:
use SOAP::Lite;
$client = SOAP::Lite->new(proxy => "http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl");
$som = $client->call("NDFDgen", 35.05,-106.65,"glance","2010-11-20T00:00:00","2010-11-20T07:00:00","temp");
die $som->fault->{ faultstring } if ($som->fault);
print $som->result, "\n";
Pray tell why? (the Perl code is almost a direct copy/paste from “perldoc SOAP::Lite”).
The ruby code you reference does not work as expected — it will return more than just the ‘temp’ forecast. See http://g.chasefox.net/clearos/ruby/noaa-nws-ndfd
And regarding the perl code, I suggest reviewing NOAA’s example. They have provided examples in a few languages, one of which is perl, which utilizes SOAP::Lite. See: http://www.weather.gov/forecasts/xml/sample_products/ndfdXML.tar