В этот вопрос плакат спрашивал, как сделать следующее в одной строке:
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 и не% array или $ array? Где я могу узнать больше об этом * операторе (перлоп?). Спасибо!
Мне предложили задать это как новое сообщение, хотя он дал хорошие ссылки. В любом случае, здесь идет? Может ли кто-нибудь объяснить, что назначается чему и как создается @array, а не, возможно,% array или $ array? Спасибо.