Ассоциативные массивы аналогичны обычным массивам в том отношении, что они представляют собой список скалярных переменных. Различие заключается в том, что массив должен использовать целочисленные значения в качестве индексов при выборе элементов массива, тогда как ассоциативный массив может использовать величины любого типа для выбора элементов массива. Индексные величины для ассоциативного массива называются ключами. Рассмотрим следующие примеры:
$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 не интерпретирует переменные, содержащие строки в одинарных кавычках.