В рассмотренных ранее в этой главе примерах мы познакомились с тем, как создать список, сохранить его в качестве значения переменной, организовать итерации по всем элементам списка иполучить доступ к индивидуальному элементу списка. В этом разделе вы познакомитесь еще с несколькими функциями, которые расширяют набор возможностей для работы со списками.
Функция REVERSE
Функция reverse реверсирует элементы списка. Она имеет следующий формат:
@new_list = reverse(@List);
Функция reverse реверсирует список и возвращает новый результирующий список. Следующий пример иллюстрирует использование функции reverse:
@list = reverse(1..5); # Результат 5,4,3,2,1 @list = reverse(@list); # Результат 1,2,3,4,5
Функция SORT
Функция sort сортирует элементы списка. Она имеет следующий формат:
@new_list = sort(@List);
или
@new_list = sort(Subroutine @List);
или
@new_list = sort(BlockStatement @List);
Функция sort размещает элементы в списке, упорядочивая их всоответствии с порядковыми номерами символов в таблице ASCII-кодов. Так же как и функция reverse, функция sort возвращает в качестве значения новый список и не воздействует на исходный список. Следующий пример иллюстрирует использование функции sort:
@list = sort (1,5,2,3,4); # Результат 1,2,3,4,5 @list = sort(1,2,10); # 1,10,2 сортировка в ASCII
В подпрограмме или блоке можно изменять упорядочение, в соответствии с которым выполняется сортировка. Следующий примериллюстрирует использование функции sort.
@list = sort({$a <=> $b} (2,1,10)); # @list 1,2,10 @list = sort({$b <=> $a}) (2,1,10); # @list 10,2,1 sub mycomp { $b <=> $a } @list = sort(mycomp (2,1,10)); # @list 10,2,1
8 8 8
| |