Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
perl.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
388.1 Кб
Скачать

Функции для обработки списков

В рассмотренных ранее в этой главе примерах мы познакомились с тем, как создать список, сохранить его в качестве значения переменной, организовать итерации по всем элементам списка иполучить доступ к индивидуальному элементу списка. В этом разделе вы познакомитесь еще с несколькими функциями, которые расширяют набор возможностей для работы со списками.

Функция 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

Функции работы с массивами

Как известно, массив представляет собой структуру данных,содержащую одно или несколько значений величин одного типа, например, 100 имен студентов. Perl содержит несколько встроенныхфункций, которые помогают работать с элементами массива. В следующих разделах рассматривается несколько основных функций дляобработки массивов.

Функции push и pop

Скрипты языка Perl используют фикции push и pop для того,чтобы добавлять и удалять элементы с конца массива. Иными словами, функции push и pop позволяют скриптам выполнять операции состеком по принципу: последним вошел, первым вышел. Функция pushимеет следующий формат:

push(@ARRAY, LIST);

Следующий фрагмент иллюстрирует использование функции push:

@list = ();

push(@list,10,20); # @list теперь (10,20)

push(@list,1..3); # @list теперь (10,20,1,2,3)

В противоположность этому функция pop удаляет элемент, который был вставлен в стек последним и возвращает значение этогоэлемента. Функция pop имеет следующий формат:

$value = pop(@ARRAY);

Следующий фрагмент программы иллюстрирует использование функции pop:

# Возьмём @list из предыдущего примера

print pop(@list); # Выведет 3

print pop(@list); # Выведет 2

# Теперь @list (10,20)

Функция shift

Функция shift удаляет и возвращает элемент из начала массива. Эта функция аналогична функции pop с тем только отличием, чтоработает от начала массива по принципу FIFO (<первым вошел, первым вышел>). Функция shift имеет следующий формат:

$value = shift(@ARRAY);

Следующий фрагмент программы иллюстрирует использование функции shift:

# Возьмём @list из предыдущего примера

print shift(@list); # Выведет 10

print shift(@list); # Выведет 20

# Теперь @list ()

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]