ID(大文字小文字混在の半角英数)と得点を格納したハッシュ%dataがあります。
これを得点の高い順に並べ、さらに同じ得点同士ではアルファベット順に並べて
IDを取り出したいと思います。そこで以下のようにしました。

%data= ('aaa' => 90, 'bbb' => 80, 'CCC' => 80, 'DDD' => 70,);
@id_array = sort { $data{$b} <=> $data{$a} or $a cmp $b} keys %data;

しかし、これでは同じ得点の人が
大文字のアルファベット順→小文字のアルファベット順になってしまいました。
(上の例ではaaa, CCC, bbb, DDD,の順になる)

アルファベットの順(aaa, bbb, CCC, DDDの順)に並べ替える方法はありますか?