decoded_content

http://d.hatena.ne.jp/tokuhirom/20091004/1254672645

を見て知ったんだけど、HTTP::Response(定義は HTTP::Message)には
decoded_contentというメソッドがあって decodeした contentを返して
くれるようです。perldoc HTTP::Messageに書いてあることだけでは
わかりづらかった(僕の英語力が貧弱なため)、HTTP::Messageのソース
コードを読んで見たところ、HTMLであればmetaタグの charsetを見て
くれるというところまでしてくれるので、素直にこれを使えば良さそう
ですね。今まで

  my $response = $ua->get( $url );
  die "Can't download $url\n" if $response->is_error;
  my $decoded = decode_utf8($response->content);

っていうコードを散々書いてきたけど、これからはdecoded_contentを
使います。ちゃんと perldoc見るべきですね。返り値のオブジェクトに
ついてもちゃんと調べるようこころがけよう。