練習。kantoku.pl

練習で作った。しょぼかるの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みたいになっちゃってる。いたたたた。他にもわかってないところがいっぱいるあるな...。