gpt4 book ai didi

perl - 此示例代码中的数组引用范围是否重要

转载 作者:行者123 更新时间:2023-12-01 05:58:49 26 4
gpt4 key购买 nike

#!/usr/bin/perl

A();
B();

sub A {
my @array = qw(value_1 value_2);
$array_ref = \@array;
}

sub B {
foreach my $i ( @{$array_ref} ) {
print "Array Value: $i \n";
}
}

由于数组是使用'my'关键字声明的,数组引用会丢失吗?谁能简单介绍一下。

最佳答案

不,变量的作用域过期了,但内存地址没有过期。数据将保留。

这不是您可以简单尝试的吗? =) 我只是复制/粘贴了您的代码并试了一下,效果很好。

不过,为了正确封装,您确实应该返回数组 ref:

B(A());
# Or
my $aref = A();
B($aref);

sub A {
my @array = qw(value_1 value_2);
return \@array;
}

sub B {
my $array_ref = shift;
foreach my $i ( @$array_ref ) {
print "Array Value: $i \n";
}
}

关于perl - 此示例代码中的数组引用范围是否重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com