Иллюстрированный самоучитель по Perl

       

Массив массивов


Сформируем массив @caiendar, используя результаты предыдущего раздела.

for $i (1,3..12) { . '

for $j (1..30) {

$calendar[$i-l][$j-l] =&$f($i, $j);

}

}; • . for $i (1,3,5,7,8,10,12) {

$calendar[$i-l][30] = &$f($i, 31); }; for $j (1..28) {

$calendar[l][$j-l] = &$f(2, $j); };

# Если год високосный, то добавляется еще один элемент массива $calendar[l][28] = &$f(2,29);

Массив @caiendar состоит из 12 элементов по числу месяцев в году. Каждый элемент массива является ссылкой на другой массив, имеющий столько элементов, сколько дней в соответствующем месяце. Значениями элементов вложенных массивов являются английские названия соответствующих дней недели: "Monday", "Tuesday" и т. д.

Обращаем внимание на то, что при формировании массива ^calendar осуществляется неявное создание ссылок $caiendar [$i] и применяется компактная запись $calendar[$i] [$j] для обозначения индивидуального элемента двумерного массива, обсуждавшаяся ранее.

Содержимое массива @calendar можно вывести для просмотра при помощи следующих операторов:

for $i (0..11) {

for $j (0..$#{$calendar[$i]}) {

print $j+l,".",$i+l," is $calendar[$i][$j]\n";

} };

Напомним, что запись $#array обозначает верхнее значение индекса массива @аггау. В результате выполнения данного цикла будет выведена длинная последовательность строк вида

1.1 is Saturday 2.1 is Sunday



Содержание раздела