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

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

@list = 1..10;

splice(@list,1,8,5,6); # @list = (1,5,6,10)

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

Примечание: Если выражение, модифицирует переменную. $_, то исходный список также будет модифицирован.

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

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

Функция keys

Функция keys возвращает значения ключей, которые отвечаютассоциативному массиву. Она имеет следующий формат:

@key_list = keys(%Array);

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

$ages{'Bob'} = 25;

$ages{'Mary'} = 30;

$ages{'Zack'} = 15;

@list = keys(%ages); # @list будет 'Zack', 'Bob', 'Mary'

@list = sort keys %ages # @ list 'Bob', 'Mary', 'Zack'

for $key (sort keys %ages)

{

print "$key is $ages{$key}\n"

}

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