練習で作った。しょぼかるのTIDを指定したら監督をつぶやくもの。
WindowsでStrawberry Perlを使ってる。
use strict; use JSON; use LWP::UserAgent; use utf8; binmode STDOUT,':encoding(cp932)'; binmode STDERR,':encoding(cp932)'; die "パラメータにTIDを指定せよ\n" if @ARGV == 0; my $ti = get_title_info(@ARGV); show_title_info($ti); sub get_title_info { my $url = "http://cal.syoboi.jp/json?Req=TitleFull&TID=".join(',', @_); my $req = HTTP::Request->new(GET=>$url); my $ua = LWP::UserAgent->new; my $resp = $ua->request($req); decode_json $resp->content; } sub show_title_info { my $resp = shift; for my $tid (keys %{$resp->{Titles}}) { my $t = $resp->{Titles}->{$tid}; $t->{Comment} =~ /^:[^:]*監督[^:]*:\s*(.*?)\s+$/m; print "TID:$t->{TID} の $t->{Title} の監督は ", $1 || "しらん", " ですな。\r\n"; } }
> perl kantoku.pl 1508 1510 1511 TID:1511 の ねぎぼうずのあさたろう の監督は しらん ですな。 TID:1508 の イナズマイレブン の監督は 秋山勝仁 ですな。 TID:1510 の しゅごキャラ!!どきっ の監督は 安田賢司 ですな。
本を読んでわかったつもりでも、やってみるとよくわかってなかったり、忘れてたりしますな。
参照とか{}とか[]とか、自信ない。エラーが出て、書き換えて、通ったらOKみたいになっちゃってる。いたたたた。他にもわかってないところがいっぱいるあるな...。