В этот вопрос плакат спросил, как сделать следующее в одной строке:
sub my_sub {
my $ref_array = shift;
my @array = @$ref_array;
}
который с моим знанием основной магии Perl я бы избегал, просто используя что-то вроде:
sub my_sub {
my $ref_array = shift;
for (@$ref_array) {
#do somthing with $_ here
};
#use $ref_array->[$element] here
}
Однако в этот ответ один из SO локальных монахов tchrist предложил:
sub my_sub {
local *array = shift();
#use @array here
}
Когда я спросил
В попытке узнать уровень Perl на уровне среднего уровня волшебство, могу я спросить, что вы устанавливают, что здесь? Ты установка ссылки на @array на arrayref, который был передан? Как Знаете ли вы, что вы создаете @array и не массивом% или массивом $? Где я могу узнать больше об этом * операторе (Perlop?). Спасибо!
Мне предложили спросить его как новый пост, хотя он действительно дал хорошие ссылки. Так или иначе, здесь идет? Может кто-нибудь объяснить, что назначается тому, что и как получается @array, а не, возможно, массив% или массив $? Спасибо.