Hatena::API::Auth で JSON::Hatchet を使うには

まだ、JSON::Hatchet は CPAN にアップしていませんので naoya さんに入れて欲しいと頼むわけにもいきません。
Hatena::API::AuthJSON::Hatchet を使いたいときは、Hatena/API/Auth.pm を次のように手作業で書き直します。

BEGIN {
    use Carp;
#    our $HAVE_JSON_SYCK;
#    eval { require JSON::Syck; $HAVE_JSON_SYCK = 1 };
#    eval { require JSON } unless $HAVE_JSON_SYCK;
#    Carp::croak("JSON::Syck or JSON required to use " . __PACKAGE__) if $@;
#    *_parse_json =
#        $HAVE_JSON_SYCK  ? sub { JSON::Syck::Load($_[1]) }
#                         : sub { JSON::jsonToObj($_[1])  };
    my $JSON_PM = eval { require JSON::Syck; 'JSON::Syck' }
    || eval { require JSON::Hatchet; 'JSON::Hatchet' }
    || eval { require JSON; 'JSON' };
    $@ and Carp::croak(
      "JSON::Syck, JSON::Hatchet, or JSON is required to use " . __PACKAGE__);
    *_parse_json =
        $JSON_PM eq 'JSON::Syck' ? sub { JSON::Syck::Load($_[1]) }
      : $JSON_PM eq 'JSON' ? sub { JSON::jsonToObj($_[1])  }
      : sub { JSON::Hatchet->new->deserialize($_[1]) };
}

sub login {
    my $self = shift;
    #略
    my $json = $self->_parse_json($auth);
    if (!$json->{has_error} || $json->{has_error} ne 'false') {
        return $self->error($json->{error}->{message});
    } else {
    #略
}