結城浩のはてなブログ

ふと思いついたことをパタパタと書いてます。

明日の天気を表示するPerlスクリプト

LivedoorWeather Hacksを使って明日の天気を表示するPerlスクリプトです。
準備

C:\work> ppm search livedoor    (livedoor関連モジュールを検索)
Downloading ActiveState Package Repository packlist...done
Updating ActiveState Package Repository database...done
1: Net-DNS-LivedoorDomain-DDNS
   Update your livedoor DOMAIN (http://domain.livedoor.com/) DynamicDNS records.
   Version: 0.01
   Released: 2006-11-08

2: WebService-Livedoor-Auth
   [One line description of module's purpose here]
   Version: 0.01
   Released: 2007-04-19

3: WebService-Livedoor-SpamChampuru-DNSBL
   Perl interface of SpamChampuru DNSBL WebService
   Version: 0.02
   Released: 2008-10-24

4: WebService-Livedoor-Weather
   Perl interface to Livedoor Weather Web Service
   Version: 0.02
   Released: 2006-02-23

C:\work> ppm install WebService-Livedoor-Weather   (インストール)
Downloading ActiveState Package Repository packlist...not modified
Downloading WebService-Livedoor-Weather-0.02...done
Downloading URI-Fetch-0.08...done
Downloading Class-ErrorHandler-0.01...done
Unpacking WebService-Livedoor-Weather-0.02...done
Unpacking URI-Fetch-0.08...done
Unpacking Class-ErrorHandler-0.01...done
Generating HTML for WebService-Livedoor-Weather-0.02...done
Generating HTML for URI-Fetch-0.08...done
Generating HTML for Class-ErrorHandler-0.01...done
Updating files in site area...done
   8 files installed

スクリプト(weather.pl)
63番(東京)の明日の天気です。

#!/usr/bin/perl
use strict;
use warnings;
use WebService::Livedoor::Weather;

binmode STDOUT => ':encoding(Shift_JIS)';
my $item = WebService::Livedoor::Weather->new()->get(63, 'tomorrow');
print $item->{title}, $item->{description};

実行結果

C:\work> perl weather.pl
東京都 東京 - 明日の天気伊豆諸島北部と三宅島では、
明日朝から昼前にかけて発雷のおそれがあります。ま
た、伊豆諸島では、23日朝から昼過ぎにかけて南又は
南西の強風が吹き、海はしける...

追記:use Encode; は無くてもよさそうという指摘で修正。感謝です。