http://qs1969.pair.com?node_id=54917

Item Description: This is a great module that grabs the weather with very simple commands from the National Weather System

Review Synopsis:

I just got this module today with the advice of jcwren and it is the easiest way to get the weather from the web. All it takes is a simple snippet like this:

#!/usr/bin/perl use Geo::Weather; my $weather = new Geo::Weather; $weather->get_weather('Philadelphia','PA'); print $weather->report();
And that little bit will come with a weather report that will come out with this (Today, I mean):
<font size=+4>Philadelphia, Pennsylvania</font><br> <img src="http://image.weather.com/weather/wx_icons/PFMScurrent/28.gif +" border=0> <font size=+3>Mostly Cloudy</font><br> <table border=0> <tr><td><b>Temp</b></td><td>37&deg F</td> <tr><td><b>Wind</b></td><td>From the West at 15 mph</td> <tr><td><b>Dew Point</b></td><td>18&deg F</td> <tr><td><b>Rel. Humidity</b></td><td>39%</td> <tr><td><b>Visibility</b></td><td>unlimited</td> <tr><td><b>Barometer</b></td><td>30.25 inches</td> <tr><td><b>Sunrise</b></td><td>7:14 am</td> <tr><td><b>Sunset</b></td><td>5:16 pm</td> </table>
But if you don't want that big report you can even shorten it to make it more limited and more..fashionable:
use Geo::Weather; my $weather = new Geo::Weather; my $current = $weather->get_weather('19067'); print "The current temperature is $current->{temp} degrees\n";
And that would just print:
The current temperature is 35 degrees
Now, all this code presented is well documented in the module. All the keys are covered with a description next to it. So, in conclusion, this is MUCH easier than going out and writing a whole load of regular expressions to grab the weather where the results might not even be accurate! Trust me, I know. Get it here

UPDATE: In the full report, you can use the zip code in there too for convenience. If your not connected to the internet when you run it, all that will happen is a little error.