Próbuję wykonać następujące czynności. Mam predefiniowaną listę, która będzie używana jako "zamówienie przez" na danej liście.Jak posortować listę dla danego zamówienia?
my @orderby = ('car', 'boat', 'chicken', 'cat', 'dog', 'mouse');
or
my %orderby = ('car' => 0, 'boat' => 1, 'chicken' => 2, 'cat' => 3, 'dog' => 4, 'mouse' => 5);
my @list = ('boat', 'car', 'mouse', 'chicken');
Próbowałem nieskończonych sposobów sortowania i nie dostałem tego, co chcę. Szukałem w Google i tutaj, ale nie znalazłem odpowiedzi.
@list
muszą być klasyfikowane w ten sposób:
sort @list using %orderby
druk, że chcę po sortowania:
car, boat, chicken, mouse
BTW, może @list zostały zduplikowane wpisy:
my @list = ('boat', 'car', 'mouse', 'chicken', 'mouse', 'car');
W takim przypadku wydruk musi być:
car, car, boat, chicken, mouse, mouse
Czy macie na to rozwiązanie? lub może inne podejście. Dzięki!
Re aktualizacją, mój rozwiązania obsługują duplikaty. – ikegami
Tak, testowałem to! Jeszcze raz! – Jonathan