Todd Wade wrote:
> 
> This sub grabs http://weather.noaa.gov/pub/data/forecasts/zone/oh/ohz021.txt
> with LWP::Simple, extracts the current weather conditions out of the heading
> and future forecast, Lowercases the entire string, uppercases the first word
> in every sentence, and returns the string.
> 
> sub current_weather_conditions {
>  my($weather) =
> get('http://weather.noaa.gov/pub/data/forecasts/zone/oh/ohz021.txt');
>  ($weather) or return('Today\'s weather conditions are currently
> unavailable');
>  $weather =~ s/.*?\n\.[^.]*?\.{3}(.*?)\n\..*/$1/s;

Why remove everything you don't want, why not just capture the data you
do want?

>  $weather =~ tr/[A-Z]\n/[a-z] /;
                  ^   ^   ^   ^
Why are you translating a '[' to '[' and ']' to ']'?  Why are you
translating "\n" to " " when there are no newlines in $weather?

>  $weather =~ s/( ?)(.)(.*?)\./$1\U$2\E$3\./g;
>  return($weather);
> }


my $url =
'http://weather.noaa.gov/pub/data/forecasts/zone/oh/ohz021.txt';

sub current_weather_conditions {
    my $weather = lc $1 if get( $url ) =~ /^\.[^.]*?\.{3}(.*)$\./m;
    return q(Today's weather conditions are currently unavailable)
        unless length $weather;
    $weather =~ s/(\w+)/\u$1/g;
    return $weather;
}


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to