PERL - статьи


Массивы хэшей - часть 2


($key, $value) = split ':', $element;

$key=~s/^[\s\n]+//; #очистить от пробелов

$key=~s/[\s\n]+$//;

$value =~s/^[\s\n]+//; #очистить от пробелов

$value =~s/[\s\n]+$//;

$array[$loopindex]{$key} = $value;

}

}

print $array[0]{'second favorite'};

Обратите внимание, что мы здесь воспользовались контекстно-чувствительной

процедурой автооживления ссылок (autovivification)

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

Чтобы получить значение, хранимое; в массиве хэшей, надо указать индекс

массива и ключ хэша:

$array[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};

В следующем случае мы полностью выводим массив хэшей с помощью цикла по

его элементам:

$array[0] = {favorite => "apples",

second => "oranges"};

$array[1] = {favorite => "corn",

second => "peas",

least => "turnip"};

$array[2] = {favorite => "chicken",

second => "beef"};

for $loopindex (0..$#array) {

print "array[$loopindex]:\n\t{";

fоr $key (keys %{$array[$loopindex]})

{

print "$key => $array[$loopindex]{$key},";

}

print "}\n";

A вот как сделать то же самое, используя вместо индекса цикла ссылку:

$array[0] = {favorite => "apples",

second => "oranges"};

$array[1] = {favorite => "corn",

second => "peas",

least => "turnip"};

$array[2] = {favorite => "chicken",

second => "beef"};

for $hashreference(@array) {

print "{";

for $key (sort keys %$hashreference) {

print "$key => $array[$loopindex]{$key}, ";

}

print ,"}\n";

}




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



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