for (sort {$file{$a}[1] <=> $file{$b}[1]} @keys) {
for $box (@{$data{$_}}) {
}

これって、{$a},{$b} には最初に何が入るのでしょうか?
@kes の要素の1番めと1番めですか?
その次が2番めと2番めですか?