Упрощенная запись ключей хешей

В Perl предусмотрено множество способов сокращенной записи, упрощающих работу программиста. Вот один из них, весьма удобный: некоторые ключи хешей необязательно заключать в кавычки. Конечно, это возможно не для всех ключей, потому что ключ хеша может представлять собой произвольную строку. Однако ключи часто относительно просты. Если ключ хеша не содержит ничего кроме букв, цифр и символов подчеркивания и не начинается с цифры, кавычки можно опустить. Подобные простые строки без кавычек называются тривиальными словами (barewords). Эта сокращенная запись чаще всего применяется в самом распространенном месте записи ключей хеша: в фигурных скобках ссылки на элемент хеша. Например, вместо $score{"fred"} можно написать просто $score{fred}. Так как многие ключи хешей достаточно просты, отказ от кавычек действительно удобен. Но помните: если содержимое фигурных скобок не является тривиальным словом, Perl интерпретирует его как выражение.

Ключи хешей также часто встречаются при заполнении всего хеша по списку пар «ключ-значение». Большая стрелка (=>) между ключом и значением в этом случае особенно полезна, потому что она автоматически оформляет ключ как строку (и снова только если ключ является тривиальным словом):

# Хеш с результатами партий в боулинг
my %score = (
barney => 195,
fred => 205,
dino => 30,
);

Здесь проявляется еще одно важное отличие между «большой стрелкой» и запятой; тривиальное слово слева от большой стрелки неявно оформляется как строка (хотя все, что находится справа, остается без изменений).


Данная особенность «большой стрелки» может использоваться не только при работе с хешами, однако этот вариант использования является самым распространенным.

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

Статьи из раздела Perl на эту тему:
Отбор элементов списка
Перехват ошибок в блоках eval
Преобразование элементов списка
Срезы
Срезы массивов

Вернуться в раздел: Perl / 16. Расширенные возможности Perl