W this question plakat zapytał, jak wykonać następujące czynności w jednym wierszu:Demystifying glob Perl (*)
sub my_sub {
my $ref_array = shift;
my @array = @$ref_array;
}
który z mojej wiedzy podstawowej magii Perl chciałbym uniknąć po prostu za coś takiego:
sub my_sub {
my $ref_array = shift;
for (@$ref_array) {
#do somthing with $_ here
};
#use $ref_array->[$element] here
}
jednak w jednym z lokalnych this answer mnichów So tchrist zasugerował:
sub my_sub {
local *array = shift();
#use @array here
}
Kiedy zapytałem
Próbując dowiedzieć się średniego szczebla Perl magię, mogę zapytać, co to jest, że ustawiania do czego tutaj? Czy ustawiasz odwołanie do @array na , które zostało przekazane? Jak wiesz, że tworzysz @array i nie% array lub $ array? Gdzie mogę dowiedzieć się więcej o tym * operatora (perlop?). Dzięki!
Zasugerowałem, aby zadać to pytanie jako nowy post, choć dał on dobre referencje. W każdym razie, tutaj idzie? Czy ktoś może wyjaśnić, co jest przypisane do tego, co i jak powstaje @array, zamiast być może% tablica lub tablica $? Dzięki.
Prawdopodobnie można zdobyć kilka ważnych informacji na temat typeglobów z [tej odpowiedzi] (http://stackoverflow.com/questions/3807231/how-can-i-test-if-i-can-write-toa-a- filehandle/4200474 # 4200474), z których żaden nie został tu jeszcze dotknięty. – tchrist