Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Reference - Fatal编程技术网

Arrays 使用数组引用将数组追加到函数perl中

Arrays 使用数组引用将数组追加到函数perl中,arrays,perl,reference,Arrays,Perl,Reference,我正试图了解perl脚本。其中使用数组的引用调用函数。在这个函数中,这个数组被追加 所以我的第一个问题是,如果我在函数中的数组引用中附加了一些东西,我是否会将它附加到全局数组中 我试着把剧本浓缩下来,尽量贴近剧本。我最终得到了以下perl脚本: #!/usr/bin/perl use strict; my @array = (); my $i = 0; while ($i < 11) { fun(\@array); $i++; } print @array , "\

我正试图了解perl脚本。其中使用数组的引用调用函数。在这个函数中,这个数组被追加

所以我的第一个问题是,如果我在函数中的数组引用中附加了一些东西,我是否会将它附加到全局数组中

我试着把剧本浓缩下来,尽量贴近剧本。我最终得到了以下perl脚本:

#!/usr/bin/perl

use strict;

my @array = ();
my $i = 0;

while ($i < 11) {
    fun(\@array);
    $i++;
}

print @array , "\n";

sub fun {
    my $array_ref = @_;
    push @{$array_ref}, $i;
}

您看到的错误是由线路引起的

 my $array_ref = @_;
在标量上下文中,普通数组返回其长度,因此
$array\u ref
1
,而不是对
@array
的引用。在下一行中,perl抱怨,因为您无法取消引用
1
。从
@(或任何其他数组)赋值时,请使用列表上下文:

 my ($array_ref) = @_;
或者,在这种情况下,您可以使用
shift

 my $array_ref = shift;

您看到的错误是由线路引起的

 my $array_ref = @_;
在标量上下文中,普通数组返回其长度,因此
$array\u ref
1
,而不是对
@array
的引用。在下一行中,perl抱怨,因为您无法取消引用
1
。从
@(或任何其他数组)赋值时,请使用列表上下文:

 my ($array_ref) = @_;
或者,在这种情况下,您可以使用
shift

 my $array_ref = shift;
如果
打印“@array\n”
,则输出中的元素将被空格很好地分隔如果
打印“@array\n”
,则输出中的元素将被空格很好地分隔