Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在Perl中反引用数组?_Arrays_Perl_Dereference - Fatal编程技术网

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";
}