我经常在Perl中有一个子程序,用一些信息填充数组.由于我也习惯于使用C++进行攻击,我发现自己经常在Perl中这样做,使用引用:
my @array;
getInfo(\@array);
sub getInfo {
my ($arrayRef) = @_;
push @$arrayRef, "obama";
# ...
}
Run Code Online (Sandbox Code Playgroud)
而不是更简单的版本:
my @array = getInfo();
sub getInfo {
my @array;
push @array, "obama";
# ...
return @array;
}
Run Code Online (Sandbox Code Playgroud)
当然,原因是我不希望在子例程中本地创建数组,然后在返回时复制.
是对的吗?或者Perl是否优化了它?