Хеш как единое целое

Чтобы сослаться на весь хеш (а не на его отдельный элемент), используйте префикс % (процент). Например, хеш, элементы которого мы использовали на нескольких предыдущих страницах, на самом деле называется %family_name. Для удобства хеш можно преобразовать в список, и наоборот. Присваивание хешу выполняется в списочном контексте, где список состоит из пар «ключ-значение»:

%some_hash = ("foo", 35, "bar", 12.4, 2.5, "hello",
"wilma", 1.72e30, "betty", "bye\n");

Значение хеша (в списочном контексте) представляет собой простой список пар «ключ-значение»:

@any_array = %some_hash;

Мы называем эту конструкцию – преобразование хеша обратно в список пар «ключ-значение» – раскруткой хеша. Конечно, порядок следования пар может отличаться от исходного списка:

print "@any_array\n";
# Примерный результат:
# betty bye (новая строка) wilma 1.72e+30 foo 35 2.5 hello bar 12.4

Порядок изменился, потому что Perl хранит пары «ключ-значение» в удобном для себя порядке, обеспечивающем максимальную скорость поиска. Хеш используется в тех случаях, когда порядок элементов неважен или имеется простой способ приведения их к желаемому порядку. Конечно, несмотря на изменение порядка пар «ключ-значение», каждый ключ остается «прикрепленным» к соответствующему значению в итоговом списке. Таким образом, хотя мы не знаем, в какой позиции списка будет находиться ключ foo, можно быть уверенным в том, что соответствующее значение (38) будет находиться сразу же за ним.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Зачем использовать хеш?
Интерполяция элементов хеша
Обращение к элементам хеша
Присваивание хешей
Типичные операции с хешами

Вернуться в раздел: Perl / 5. Хеши