- напечатает ``how are you?''.
Нужно понимать, что раскрытие ссылки имеет более высокий приоритет, чем извлечение значения переменной. Можно поступить как и в предыдущем случае, но заключить выражение после знака $в фигурные скобки. Приведенный пример тогда будет выглядеть таким образом: $bar = ${$scalarref}; push(@{$arrayref},$filename); ${$arrayref}[0] = "January"; ${$hashref}{"key"} = "value"; &{$coderef}(1,2,3);
В данном случае использование фигурных скобок ничего не меняет, но в общем случае в скобках может стоять произвольное выражение, даже подпрограмма: &{ $dispatch{$index} }(1,2,3);
В случае массива или хэша можно использовать такую запись: $arrayref->[0] = "January"; $hashref->{"key"} = "value";
Левая часть должна быть выражением, возвращающим ссылку, возможно также являющуимся раскрытием ссылки: $array[$x]->{"foo"}->[0] = "January";
Если ссылка является ссылкой на объект, то раскрытие данных происходит также, как уже было описано выше.
Функция ref() может быть использована для определения типа объекта, на который указывает ссылка. Функция bless() может быть использована для ассоциирования ссылки с пакетом, функционирующим как объектный класс.