Обратите внимание, что мы здесь
($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";
}
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий