The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Weather::TW::Forecast - Get Taiwan forecasts

SYNOPSIS

    use Weather::TW::Forecast;
    my $weather = Weather::TW::Forecast->new(
      location => '台北',
    );
    foreach ($weather->short_forecasts){
      say $_->start;
      say $_->end;         # DateTime objects specify forecast time interval
      say $_->temperature; # Temperature string, ex: '23 ~ 25'
      say $_->weather;     # Weather string, ex "陰短暫陣雨" 
      say $_->confortable; # ex '舒適'
      say $_->rain;        # probabilty to rain, 0~100%
    }
    foreach ($weather->weekly_forecasts){
      say $_->day;         # DateTime object
      say $_->temperature; # Temperature string, ex: '23 ~ 25'
      say $_->weather;     # Weather string, ex "陰短暫陣雨" 
    }
    my $hash_ref = $weather->montly_mean;
    say $hash_ref->{temp_high}; # Maximum temperature
    say $hash_ref->{temp_low};  # Mininum temperature
    say $hash_ref->{rain};      # Rain precipitation (mm)

DESCRIPTION

This module reimplement Weather::TW with new web address (from V6 to V7) and new parser (use Mojo::DOM instead of HTML::TreeBulder). The methods in Weather::TW will be deprecated and shiped to Weather::TW::Forecast. More submodules will be develop to handle obsevations and detail rain infos. Weather::TW will be a abstract class to access these submodules.

METHODS

new

    my $weather = Weather::TW::Forecast->new(
      location => '台北',
    );

Construct a new Weather::TW::Forecast object.

Available locations are

    台北市 新北市 台中市 台南市 高雄市 基隆北海岸 桃園 新竹 苗栗 彰化 南投 雲林 嘉義 屏東 恆春半島 宜蘭 花蓮 台東 澎湖 金門 馬祖

Weather::TW::Forecast will do the fetching right after location is set.

location

    $weather->location('台中市'); 
    # Change location to 台中市 and do the fetching
    
    $location = $weather->location();
    # Get the location string of $weather

Setter and getter of location.

all_locations

Simply return all available locations

short_forecast

    foreach ($weather->short_forecasts){
      say $_->start;
      say $_->end;         # DateTime objects specify forecast time interval
      say $_->temperature; # Temperature string, ex: '23 ~ 25'
      say $_->weather;     # Weather string, ex "陰短暫陣雨" 
      say $_->confortable; # ex '舒適'
      say $_->rain;        # probabilty to rain, 0~100%
    }

This method returns an array of Weather::TW::Forecast::ShortForecast objects. The object owns six attributes, as shown as above.

weekly

    foreach ($weather->weekly_forecasts){
      say $_->day;         # DateTime object
      say $_->temperature; # Temperature string, ex: '23 ~ 25'
      say $_->weather;     # Weather string, ex "陰短暫陣雨" 
    }

Returns a sequence of Weather::TW::Weekly objects, the contents of the object is as same as above.

montly_mean

    my $hash_ref = $weather->montly_mean;
    say $hash_ref->{temp_high}; # Maximum temperature
    say $hash_ref->{temp_low};  # Mininum temperature
    say $hash_ref->{rain};      # Rain precipitation (mm)

A hash references contains maximum temperature, minimun temperature, and rain precipitation (mm).