Ссылка является скалярной (по определению), даже если то, на что она ссылается, не является. Поэтому я не совсем уверен, что вы подразумеваете под «назначить переменную массива для ссылки на массив вместо скалярных переменных». Вы можете push
ссылаться на массивы в обычные массивы как члены, а затем просто разыменовывать их. Вы также можете вернуть ссылки из подпрограмм.
Вы можете разыменовать возвращаемое значение подпрограммы в присваивании. Интересно, это то, что вы пытаетесь сделать?
my @array = @{ some_sub() };
Обратите внимание, что, как поясняет Аксеман, это само по себе не очень хорошая идея и не особенно необходимая. Если вы действительно хотите получить элементы из подпрограммы, а затем в массивы, предложение Депеша - это то, что вам нужно.
Я настоятельно рекомендую perldoc perlreftut
как введение в ссылки на Perl. Вы также можете посмотреть на perldoc perllol
и perldoc perldsc
.
Может помочь, если вы объясните, что вы на самом деле пытаетесь сделать и почему?