«Большая стрелка»

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

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

Разве не удобно было бы иметь механизм определения пар «ключ-значение» в таких списках, чтобы мы могли с первого взгляда определить, чем является тот или иной элемент? Ларри тоже так думал, поэтому он изобрел «большую стрелку» =>. С точки зрения Perl «большая стрелка» является всего лишь альтернативным способом «изображения» запятой, поэтому иногда ее называют «жирной запятой». Иначе говоря, в грамматике Perl во всех ситуациях, где может использоваться запятая (,), ее можно заменить «большой стрелкой»; для Perl эти обозначения эквивалентны. А следовательно, определение хеша с именами и фамилиями может выглядеть так:

my %last_name = ( # Хеш может быть лексической переменной
"fred" => "flintstone",
"dino" => undef,
"barney" => "rubble",
"betty" => "rubble",
);

Этот синтаксис позволяет легко (или, по крайней мере, гораздо легче) увидеть, какая фамилия соответствует тому или иному имени, даже если в одной строке будут размещаться несколько пар.


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

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

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

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