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