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見るべきですね。返り値のオブジェクトに
ついてもちゃんと調べるようこころがけよう。