Массив массивов
Сформируем массив @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