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

I bought an account with www.wunderground.com so I don't feel guilty making requests through an agent... my $weather = weather (95017); print "$weather\n";
sub weather { my $zip = shift; my $url = shift; $url = $url || "http://www.wunderground.com/cgi-bin/findweather/getF +orecast?query=$zip"; my $out = &www_slurp ($url); $out =~ s/\r//g; $out =~ s/\n//g; my ($temp) = $out =~ /<td>Temperature<\/td><td><b>(\d+)/m; my ($cond) = $out =~ /<td>Conditions<\/td><td><b>([^<]+)</m; my ($sunrise, $t) = $out =~ /<td>Sunrise<\/td><td><b> (\d+:\d+) (AM| +PM)/m; my ($sunset, $tt) = $out =~ /<td>Sunset<\/td><td><b> (\d+:\d+) (AM|P +M)/m; my ($location) = $out =~ /<title>Weather Underground: ([^<]+)</m; $location =~ s/ Forecast$//; my ($gay, $tonight) = $out =~ /<b>(Monday|Tuesday|Wednesday|Thursday +|Friday|Saturday|Sunday|Today|Tonight|Overnight|Now)<\/b><br>([^<]+)< +/; $tonight =~ s/&&//g; $tonight =~ s/\s+$//; return "" if (! $temp); my $now = time; my @now = split //, $now; my $str = "$location: $cond, $temp" . "F, $tonight" . ($sunrise && $t ? " sunrise at $sunrise $t" : "") . ($sunset && $tt ? ", sunset at $sunset $tt." : ""); $str =~ s/\s+/ /g; return $str; }