>>468
同時に比較すればいいんでね?

my @arr = qw(
    foo-1 bar-2 baz-3 qux-4
    quux-1 corge-2 grault-3 garply-4
    waldo-1 fred-2 plugh-3 xyzzy-4 thud-5
);
my @new_arr =
    map { $_->[0] .'-'. $_->[1] }
        sort { ($a->[1] == $b->[1]) ? $a->[0] cmp $b->[0] : $a->[1] <=> $b->[1] }
            map { my ($k, $i) = split (/-/); [$k, $i] } @arr;
$, = "\n";
print @new_arr;
exit;

誰かもっといい方法あったらおせーて orz