Встроенные функции Perl. Обработка хешей

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

 

keys

Функция keys возвращает список всех ключей заданного хеша. Ключи возвращаются в случайном порядке, без какой либо сортировки. При необходимости, список можно отсортировать позднее.

Пример:

Вывод:

В скалярном контексте keys возвращает число элементов в хеше.

 

values

Функция возвращает список, содержащий все значения хеша. Значения возвращаются в случайном порядке.

Пример:

Вывод:

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

Пример:

Вывод:

 

each

Функция проходит хеш, возвращая пару — ключ и значение. В списковом контексте возвращает одну пару хеша. В скалярном контексте возвращает очередной ключ хеша.

Пример:

Вывод:

Каждый хеш имеет собственный итератор. Функции each, keys и values используют его для определения того, какой элемент был возвращен последним, и какой будет возвращен во время следующей итерации. Если хеш пройден полностью, значение итератора сбрасывается. Сбросить значение итератора можно выполнив функцию keys %hash или values %hash.

 

exists

Функция exists проверяет наличие указанного ключа (или индекса) в хеше (или массиве). Если ключ найден — возвращает true. С помощью exists можно осуществлять проверку наличия элементов в сложных структурах данных.

С помощью exists можно проверять наличие нужных подпрограмм в коде.

 

delete

Функция удаляет элемент из хеша или массива. Возвращает список удаленных элементов.

Пример:

Вывод:

Не рекомендуется использовать delete, если необходимо удалить все элементы из хеша или массива. Для удаления всех элементов лучше использовать %hash = (); и @array = ();