>>767
foreach (@question) のループの中で、$key, $val, $aval
が全く変更されていない。従って、$rank_dataは常に同一の
文字列になる。もしかすると、
($rank_data) = split(/\t/); を、
($key,$val,$aval) = split(/\t/);
にすれば、望んだ結果が得られるかもしれない。