XML::Simpleで文字化け??

MacOSX上でLastFMのランキングをつぶやくbotを作っています。
(よかったらフォローしてみてください。新しいアーティストの発見に!?)

  • [twitter:@lastfmrankjp]
    • 週一回、日本でよく聴かれたアーティストベスト50をつぶやくbot
  • [twitter:@lastfmrankus]
    • 週一回、アメリカでよく聴かれたアーティストベスト50をつぶやくbot。デスキャブとかThe Shinsとか入っていていい感じです。
  • [twitter:@lastfmrankuk]
    • 週一回、イギリスでよく聴かれたアーティストベスト50をつぶやくbot
  • とりあえず出来たのでCentOSに持っていってcronで動作させようと思い、アップロードしてターミナルから実行してみると、、文字化け。。
  • 原因は調査中ですが、どうやらXML::SimpleのXMLin()に渡して返ってきたときに文字化けしているようです。
    • XMLin()関数内で"flagged UTF8'"に変換されて戻ってきているのでその時??
    • ググってみるとXML::Simpleの文字化けに関する情報は多く見つかったのですが、解決方法が見つからず。。
  • なのでとりあえず、perldocやソースから調査してみようかと思います。
  • (今はランキングの更新タイミングを調査中ということもあって、macから手動で投稿させているという情けない状態。。)
  • 以下、検証用ソースです。(MacOSXでは文字化けせず、CentOSでは文字化けします)
    • Perlのバージョンは共にv5.12.1
    • XML::Simpleのバージョンは共にv2.18
#!/usr/bin/env perl

use strict;
use warnings;
use utf8;
use 5.010;

use Encode;
use LWP::UserAgent;
use XML::Simple;

binmode STDOUT, ':utf8';

my $ua = LWP::UserAgent->new;
my $uri = 'http://ws.audioscrobbler.com/2.0/?method=geo.gettopartists&country=japan&api_key=b25b959554ed76058ac220b7b2e0a026';

my $res = $ua->get($uri);
$res->is_success or die 'error';
my $result = XMLin($res->decoded_content);

for my $name (keys %{$result->{topartists}->{artist}}) {
        say $name;
}

**