"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора

$ref2->[12];
${$ref2}[12];
$$ref2[12];

$ref3->{$key};
${$ref3}{$key};
$$ref3{$key};

Как правило, предпочитают использовать конструкции с оператором ->,
делающие код более читабельным.
Можно также создать ссылку на анонимный массив или хэш:
$aref = [1, 2, 3];
$href = {1 => One, 2 => Two, 3 => Three};

С помощью ссылок можно формировать довольно сложные структуры данных
(например, массив ссылок на хэши).


Управляющие структуры и функции
Для управления потоком исполнения программы используются операторы
ветвления и цикла, аналогичные существующим в С. Причем обязательным
условием является использование блока операторов, заключенных в фигурные
скобки. Последний оператор в блоке может не иметь завершающей точки с
запятой:
if($a>$max) {$max = $a}
Общая форма оператора if:
if(условие 1)
{...}
elsif(условие 2)
{...}
elsif(условие 3)
{...}
...
else
{...}

Вместо конструкции if(!условие) можно использовать unless(условие), а
для упрощения записи вместо конструкции if(условие){оператор} можно
использовать оператор if условие.
В качестве управляющих структур часто используются операции и ||:
Запись if(выражение){оператор} эквивалентна записи выражение
оператор, а запись unless (выражение){оператор} - записи выражение ||
оператор. Выбор той или иной формы полностью зависит от настроения
программиста.

Операторы цикла также чуть более разнообразны, чем в С: вместо
while(!условие){} можно записать until(условие){}, аналогично и для цикла с
пост-условием. Для сокращения записи также используется конструкция оператор
while выражение.
Помимо оператора for, ничем не отличающегося от С, существует оператор