【发布时间】:2011-08-01 11:58:07
【问题描述】:
可能重复:
Is returning a whole array from a Perl subroutine inefficient?
我有这个代码
my $h = function($ref);
sub function {
my $ref = shift @_;
my %HoA = ();
foreach my $key (keys %$ref) {
$HoA{$key} = 1;
}
return \%HoA;
}
返回对%HoA的引用。
在性能和内存使用方面,最好返回引用还是应该return %HoA?
【问题讨论】:
-
这不是同一个问题。哈希比数组包含更多冻结的逻辑。如果您将其“倒入”接收散列中,它可能(我不太了解胆量)必须在另一端重新散列整个内容(尽管为了提高效率,它可以到内存副本中——perlers 很聪明) )。所以关于最好的事情,我可以说返回对组装散列的引用比将其作为列表传递在算法上更简单。 (“重复”引用 arrays。)