Приглашаем посетить
Биология (bio.niv.ru)

Ассоциативные массивы

Ассоциативные массивы

Ассоциативные массивы аналогичны обычным массивам в том отношении, что они представляют собой список скалярных переменных. Различие заключается в том, что массив должен использовать целочисленные значения в качестве ин­дексов при выборе элементов массива, тогда как ассоциативный массив может использовать величины любого типа для выбора элементов массива. Индексные величины для ассоциативного массива называются ключами. Рассмотрим сле­дующие примеры:

 

$ages{‘Bob’} = 35;

$ages{‘Mary’} = 25;

$, = ‘ ’;                                      # change output separator for print operator

print @ages{‘Bob’,’Mary’};             # выведет   ’25 35’

print keys(%ages);                # выведет ‘Bob Mary’

for $name (keys(%ages))

            {

                        print “$name is $ages{$keys}\n”;

            }

 

Как можно видеть, программа присваивает значения переменной '$,' (скалярная переменная, именем которой является запятая). Скрипт использует это выраже­ние для того, чтобы при дальнейшем использовании оператора print выходные дан­ные не сливались между собой. Далее в этой главе обсуждаются специальные пе­ременные, такие как '$,'.

Ассоциативные массивы идентифицируются с помощью фигурных скобок. Так же как с массивами, при ссылках на ассоциативный массив целиком индексы не используются.

Например, ссылка @ ages {' Bob ', ' Mary '} использует индексы в скобках, что указы­вает на ассоциативный массив. Префикс @ указывает на то, что речь идет о мас­сиве. Аналогичное использование знака доллара перед массивом указывает, что используется скалярная величина.

Примечаиие: Если два ключа заданы, то вместе со знаком @ эта гово­рит о том, что речь идет о части ассоциативного массива и результат должен быть в виде списка. Такое выражение эквивалентно # ages {' Bob '}, # ages { ' Ma ry '}. которое имеет своим значением величину (35, 25).

 

Выражение print keys (% ages ) вызывает оператор keys , который возвращает полный список ключей ассоциативного массива. Ссылка % ages со знаком процента в каче­стве префикса означает, что ссылка относится ко всему ассоциативному массиву. Обратите внимание, что цикл for ссылается на переменные, заключенные в двой­ные кавычки.

Наконец, последний из рассмотренных примеров также использует оператор keys и вводит цикл for для распечатки всех сочетаний ассоциативного массива. Цикл for ссылается на переменные, заключенные в двойные кавычки. Perl , в свою оче редь, заменит значения, на которые ссылаются переменные, в то время, когда бу­дет анализировать строку. Программисты называют этот процесс подстановкой пе­ременной или интерполяцией.

Примечание: Perl не интерпретирует переменные, содержащие строки в одинарных кавычках.

Назад | Оглавление | Далее