Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РЭУБД_лекции.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
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"

}