Вы получаете то, что я думаю, что вы хотите, это довольно просто.Вы просто просматриваете хеш в порядке сортировки ключей, а затем разыменовываете массив и сортируете его.
#!/usr/bin/perl
use warnings;
use strict;
my %KEY_VALUE= (
0 => [ 'A', 'C', 'B', 'A' ,'D'],
5 => [ 'D', 'F', 'E', 'F', 'F','E'],
2 => [ 'Z', 'X', 'A', 'Y', 'X', 'Y', 'A' ],
4 => [ 'E', 'R', 'M' ,'M','E'],
3 => [ 'A', 'B', 'B', 'A' ],
1 => [ 'C', 'C', 'F', 'E', 'C', 'E'],
);
for my $key (sort { $a <=> $b } keys %KEY_VALUE) {
print $key, " -> ", sort(@{ $KEY_VALUE{$key} }), "\n";
}
Но это не дает результатов, которые вы показываете.Пожалуйста, объясните, как каждый массив должен быть отсортирован.Я думал, вы хотели, чтобы они были отсортированы в алфавитном порядке, но в вашем примере это не так.
Я получаю это:
0 -> AABCD
1 -> CCCEEF
2 -> AAXXYYZ
3 -> AABB
4 -> EEMMR
5 -> DEEFFF
Но вы спрашиваете:
0 -> AACBD
1 -> CCCFEE
2 -> ZXXAAYY
3 -> AABB
4 -> EERMM
5 -> DFFFEE