Perl / 5. Хеши

В этой главе представлена одна из особенностей Perl, благодаря которой он считается одним из выдающихся языков программирования: хеши. При всей мощи и практической полезности хешей многие программисты годами работают на других известных языках, не имея с ними дела. Но вы будете использовать хеши едва ли не во всех программах Perl, которые вам предстоит написать, – настолько они полезны.
Статьи раздела '5. Хеши':
Зачем использовать хеш?
Когда вы впервые слышите о хешах (особенно если за плечами у вас долгая продуктивная карьера программирования на языках, в которых хеши не поддерживаются), может возникнуть вопрос: для чего нужны эти странные создания? Вообще гово...
Интерполяция элементов хеша
Одиночный элемент хеша интерполируется в строку, заключенную в кавычки, ровно так, как следовало ожидать: foreach $person (sort keys %books) { # Перебираем всех читателей if ($books{$person}) { print "$person has $books{$pers...
Обращение к элементам хеша
Чтобы обратиться к элементу хеша, используйте синтаксис следующего вида: $hash{$some_key} Он напоминает синтаксис обращения к элементам массива, но вместо индекса в квадратных скобках указывается ключ в фигурных скобках. Вдо...
Присваивание хешей
Хотя эта операция выполняется довольно редко, но хеши могут копироваться с использованием очевидного синтаксиса: %new_hash = %old_hash; В действительности при этом Perl выполняет больше работы, чем видно на первый взгляд. В ...
Типичные операции с хешами
А теперь будет полезно рассмотреть конкретные примеры. В библиотеке используется написанная на Perl программа, в которой среди прочего задействован хеш с количеством книг, выданным каждому читателю: $books{"fred"} = 3; $books{...
Функции keys и values
Функция keys строит список всех ключей хеша, а функция values строит список соответствующих значений. Если хеш не содержит элементов, то обе функции возвращают пустой список: my %hash = ("a" => 1, "b" => 2, "c" => 3); my @k = ...
Функция delete
Функция delete удаляет заданный ключ (вместе с соответствующим значением) из хеша. (Если ключ не существует, ничего не происходит – ни ошибки, ни предупреждения не выдаются.) my $person = "betty"; delete $books{$person}; # Лиш...
Функция each
Если вы желаете последовательно перебрать все элементы хеша, это можно сделать несколькими способами. Один из них основан на применении функции each, возвращающей очередную пару «ключ-значение» в виде списка из двух элементов. При...
Функция exists
Чтобы узнать, присутствует ли ключ в хеше (т. е. существует ли библиотечная карточка для данного читателя или нет), используйте функцию exists. Функция возвращает true, если ключ присутствует в хеше – независимо от того, истинно и...
Хеш %ENV
Ваши программы Perl, как и любые другие программы, работают в определенной среде (environment) и могут получать информацию о ней. Perl хранит эту информацию в хеше %ENV. Например, в %ENV обычно присутствует ключ PATH: print "PA...
Хеш как единое целое
Чтобы сослаться на весь хеш (а не на его отдельный элемент), используйте префикс % (процент). Например, хеш, элементы которого мы использовали на нескольких предыдущих страницах, на самом деле называется %family_name. Для удобства...
Что такое хеш?
Хеш представляет собой структуру данных, которая, как и массив, может содержать произвольное количество элементов и производить их выборку по мере надобности. Но вместо выборки по числовым индексам, как это делается с массивами, в...
«Большая стрелка»
При присваивании списка хешу иногда бывает неочевидно, какие элементы списка являются ключами, а какие – значениями. Например, если мы захотим узнать, чем является 2.5 в следующей команде присваивания (которая уже встречалась нам ...

Страницы: 1