Arrays 如何在Perl中反引用数组?
数组是使用上述代码输入的。我无法获得原始数组;当我简单地Arrays 如何在Perl中反引用数组?,arrays,perl,dereference,Arrays,Perl,Dereference,数组是使用上述代码输入的。我无法获得原始数组;当我简单地打印“@A”时,我得到了引用。但是,我找不到一种方法从中获得实际数组。有人能解释一下这里发生了什么吗?您将数组引用(标量值)传递给sub。您的@a变量是数组数组。数组中只有一个元素,它是传递给sub的数组引用。如果要打印传递的元素,可以使用@{}语法: sub main { my (@A) = @_; } main([1,3,5,7]); 但是,因为您刚刚传递了一个数组ref,所以这可能不是您想要的。 检索该变量的一种方法是将其分
打印“@A”
时,我得到了引用。但是,我找不到一种方法从中获得实际数组。有人能解释一下这里发生了什么吗?您将数组引用(标量值)传递给sub。您的@a
变量是数组数组。数组中只有一个元素,它是传递给sub的数组引用。如果要打印传递的元素,可以使用@{}
语法:
sub main
{
my (@A) = @_;
}
main([1,3,5,7]);
但是,因为您刚刚传递了一个数组ref,所以这可能不是您想要的。
检索该变量的一种方法是将其分配给sub中的标量变量。然后可以使用@{}
将其分配给数组变量:
print "@{ $A[0] }\n";
印刷品:
use warnings;
use strict;
main([1,3,5,7]);
sub main
{
my ($aref) = @_;
my @A = @{ $aref };
print "@A\n";
}
将数组引用(标量值)传递给sub。变量
@a
是数组数组。数组中只有一个元素,它是传递给sub的数组引用。如果要打印传递的元素,可以使用@{}
语法:
sub main
{
my (@A) = @_;
}
main([1,3,5,7]);
但是,因为您刚刚传递了一个数组ref,所以这可能不是您想要的。
检索该变量的一种方法是将其分配给sub中的标量变量。然后可以使用@{}
将其分配给数组变量:
print "@{ $A[0] }\n";
印刷品:
use warnings;
use strict;
main([1,3,5,7]);
sub main
{
my ($aref) = @_;
my @A = @{ $aref };
print "@A\n";
}