Создание серверных приложений на языке PERL


Хеши хешей


Хеши, составленные из других хэшей, полезны при работе с текстовой многоуровневой

информационной системой (например, экспертной системой). В этих случаях

текстовые ключи используются для последовательного просмотра различных

уровней структуры данных. В следующем примере такой хэш создается за раз:

%hash = (

fruits => {

favorite => "apples",

'second favorite' => "oranges"

},

vegetables => {

favorite => "corn",

'second favorite' => "peas",

'last favorite' => "turnip"

},

meat => {

favorite => "chiken",

'second favorite' => "beef"

}

);

print $hahs{fruits}{favorite};

Обратите внимание, что в таком хэше значениями для пар ключ/значение

высупают другие хэши(точнее, ссылки на них).

Кроме того, для конструкций типа {...}{...},

между парами фигурных скобок неявно подставляется оператор-стрелка

-> - разыменования ссылок,

Создание хэша хэшей на лету:

Чтобы создать хэш хэшей элемент за элементом, используется та же схема, что и

в случае массива массивов, но с одним существенным отличием к хэшу всегда

можно добавить новые ключ и значение, но добавление к массиву новых элементов

с пропусками индексов порождает неопределенные значения. Пример:

%hash{fruits} = {favorite => "apples",

'second favorite' => "oranges"};

%hash{vegetables} = {favorite => "corn",

'second favorite' => "peas",

'least favorite' => "turnip"};

%hash{meat} = {favorite => "chicken",

'second favorite' => "beef"};

print $hash{fruits}{favorite};

В следующей схеме генератор анонимного хэша комбинируется со списком ключ/значение,

возвращаемым внешней подпрограммой:

for $key ("hash1", "hash2", "hash3")

{ $hash{$key} = {$returnlist}; }

sub returnlist{

return (key1 => valuel, key2 => value2);

}

print $hash{hash1}{key2};

Доступ к элеметнам хеша хешей




Начало  Назад  Вперед



Книжный магазин