Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2022-12-30 | 39 |
5.00
из
|
Заказать работу |
|
|
В рассмотренных ранее в этой главе примерах мы познакомились с тем, как создать список, сохранить его в качестве значения переменной, организовать итерации по всем элементам списка иполучить доступ к индивидуальному элементу списка. В этом разделе вы познакомитесь еще с несколькими функциями, которые расширяют набор возможностей для работы со списками.
ФУНКЦИЯ 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 ()ФУНКЦИЯ UNSHIFT
Функция unshift добавляет один или больше элементов к началу массива. Она имеет следующий код:
unshift(@Array, List);Следующий фрагмент программы иллюстрирует использование функции unshift:
# @list = () unshift(@list,5,10,20); # @list (5,10,20) unshift(@list, 1..3); # @list (1,2,3,5,10,20)ФУНКЦИЯ SPLICE
Скрипты языка Perl используют функцию splice для того, чтобы извлекать элементы из списка, заменяя их элементами другогосписка. Она имеет следующий формат:
splice(@Array, Offset[, Count[, List]]);Функция splice извлекает указанное число элементов {Count)из массива (@Аrraу), начиная с элемента, на который указывает величина сдвига (Offset), и заменяет элементы элементами другогосписка (List). Если в вызове функции не указан параметр Count,функция извлекает элементы до самого конца массива. Если в вызове функции не указан список, элементами которого замещаются исходные элементы, то функция не добавляет никаких элементов к первоначальному списку. Следующее выражение иллюстрирует использование функции splice:
|
ФУНКЦИЯ SCALAR
Функция scalar определяет число элементов в списке. Онаимеет следующий формат:
Rsult = scalar(List);Обычно скрипты языка Perl не нуждаются в использовании функции scalar применительно к массивам, потому что когда скрипт обращается к массиву, записывая его в скалярном контексте, то онполучает в качестве возвращаемой величины число элементов массива. Тем не менее, скрипты могут использовать функцию scalar вслучаях, когда контекст является неоднозначным или если список неявляется массивом. Следующее выражение иллюстрирует использование функции scalar.
@list = 1..10; print scalar(@list); # Выведет размер @listФУНКЦИЯ GREP
Функция grep фильтрует элементы списка, для которых заданное выражение принимает значение <ложно>. Она имеет следующийформат:
@list = grep(Expression, List);Функция grep просматривает элементы списка, подставляя их вкачестве аргумента в заданное выражение. Функция grep присваивает текущее выражение элемента списка переменной $_ и вычисляетзаданное выражение. Если полученное выражение является истинным,то функция grep добавляет этот элемент к результирующему списку.Следующий фрагмент программы иллюстрирует использование функцииgrep:
@list = grep($_ & 1, 1..10); # @list (1,3,5,7,9) @list = ('a', '' 'b'); # @list ('a',' ','b') @list = grep($_ eq '', @list); # @list ('a','b')Примечание: Если выражение, модифицирует переменную. $_, то исходный список также будет модифицирован.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!