Массивы хэш-таблиц позволяют индексировать числовым значением записи с
именованными полями. В следующем примере создается массив хэшей:
@array = (
{
favorite => "apples",
'second favorite' => "оranges"
},
{
favorite => "corn",
'second favorite' => "peas",
'last favorite' => "turnip"
},
{
favorite => "chiken",
'second favorite' => "beef"
}
print $array[0]{favorite};
Обратите внимание, что для конструкций вида [...]{...},
как и для рассматриваемых ранее конструкций
вида {...}{...} и
[ ][[ ], между парами скобок неявно
подставляется оператор-стрелка -> разыменования ссылок.
Создание массива хэшей на лету
Можно создавать массивы хэшей шаг за шагом, присваивая
ссылки на анонимные хэши элементам массива:
@аггау[0] = {favorite => "apples",
'second favorite' => "oranges"};
@array[1] = {favorite => "corn",
'second favorite' => "peas",
'least favorite' => "turnip"};
@array[2] = {favorite => "chicken",
'second favorite' => "beef"};
print $array[0]{favorite};
Как и в случае массива массивов, вы можете воспользоваться функцией push:
push @array, {favorite => "apples",
'second favorite' => "oranges"};
push @array, {favorite => "corn",
'second favorite' => "peas",
'least favorite' => "turnip"};
push @array, {favorite => "chicken",
'second favorite' => "beef"};
print $array[0]{favorite};
В следующем примере мы последовательно читаем из текстовых строк пары
ключ/значение и превращаем их в массив хэшей:
$data[0] = "favorite:apples, second favorite:оranges";
$data[1] = "favorite:corn, second favorite:peas, least favorite:turnip";
$data[2] = "favorite:chicken, second favorite:beef";
for $loopindex (O..$#data) {
for $element(split ',', $data[$loopindex]){