在这个问题中,海报询问如何在一行中执行以下操作:
sub my_sub {
my $ref_array = shift;
my @array = @$ref_array;
}
Run Code Online (Sandbox Code Playgroud)
凭借我对基本Perl魔法的了解,我可以通过简单地使用以下内容来避免:
sub my_sub {
my $ref_array = shift;
for (@$ref_array) {
#do somthing with $_ here
};
#use $ref_array->[$element] here
}
Run Code Online (Sandbox Code Playgroud)
然而,在这个答案中,SO的当地僧侣之一提出:
sub my_sub {
local *array = shift();
#use @array here
}
Run Code Online (Sandbox Code Playgroud)
当我问
在尝试学习中级Perl魔法时,我可以问一下,你在这里设置什么是什么?您是否将@array的引用设置为已传入的arrayref?你怎么知道你创建@array而不是%array或$ array?我在哪里可以了解有关此*运算符的更多信息(perlop?).谢谢!
有人建议我把它作为一个新帖子,尽管他确实提供了很好的参考.无论如何,这里呢?有人可以解释什么被分配给什么以及如何创建@array而不是%array或$ array?谢谢.
我学会了一个perl语句,如:
*VAR = \0;
Run Code Online (Sandbox Code Playgroud)
$VAR在回答/sf/answers/2455826831/中创建一个只读,我试图找到更多的文档,以了解为什么$VAR在这种情况下是只读的,但没有运气,有人可以帮助解释或者指出一些关于这个主题的文件?