Как это работает?
sub retLnk2Arr {
my $a;
push @$a,(1,2,3,4);
return $a;
};
print retLnk2Arr->[2];
Насколько я помню, в ассемблере все локальные переменные функции принято хранить в стеке, из которого по выходу из функции всё нафиг выталкивается. И вообще там область данных функции не принято использовать извне (те же данные в стеке). А тут как? Анонимный массив создаётся внутри функции, а используется по ссылке ИЗВНЕ!