Сортировка списков – очень распространённая задача в программировании, и в Perl 6 есть несколько улучшений функции sort, помогающих вам решить такую задачу. В языке есть обыкновенный типичный sort:
# сортировка по умолчанию с учётом типа
my @sorted = @unsorted.sort; # или sort @unsorted;
Как и в Perl 5, можно настраивать функцию для сравнения:
# численное сравнение
my @sorted = @unsorted.sort: { $^a <=> $^b };
# то же, с использованием функциональной семантики
my @sorted = sort { $^a <=> $^b }, @unsorted;
# строковое сравнение ( как cmp в Perl 5 )
my @sorted = @unsorted.sort: { $^a leg $^b };
# сравнение с учётом типа
my @sorted = @unsorted.sort: { $^a cmp $^b };
Если записать условие сравнения в скобках, тогда вам не понадобится двоеточие. Это удобно, когда вы хотите выстроить цепочку из других методов, тянущуюся за sort:
my @topten = @scores.sort( { $^b <=> $^a } ).list.munch(10);
[Читать дальше →][1]
[1]:
http://habrahabr.ru/post/267887/#habracut