Язык программирования Perl

         

Автосоздание объекта ссылки


Если попытаться разыменовать ссылку на несуществующий объект, то он автоматически будет создан. В этом случае работает удивительный механизм, называемый автосозданием объекта ссылки (буквально: "автооживление" - autovivification). Например, во время обращения по ссылке к элементу массива автоматически создается массив из пяти элементов, ссылка на него присваивается в переменную $array_ref, а пятый элемент получает начальное значение:

$array_ref->[4] = '5-й элемент'; # присваивание значения print ref($array_ref); # вызывает к жизни массив print scalar(@{$array_ref}); # из 5 элементов! print $$array_ref[4]; # печатаем значение

Подобным образом применяя автосоздание объектов, можно создать цепочку ссылок, указывающих на некоторое значение:

$$$$ref = 25; # при попытке присвоить значение # создаются 2 ссылочных переменных и 1 скалярная print "$ref $$ref $$$ref $$$$ref\n"; # выведет: REF(0x334dd8) REF(0x334e8c) SCALAR(0x334e98) 25



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