可能重複:
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
?
這是*不*同樣的問題。散列比數組包含更多的凍結*邏輯*。如果你將它「倒入」到一個接收散列中,它可能(我不知道那些膽子是那麼好)必須在另一端重新整理所有東西(儘管它可以用於記憶效率 - )。所以關於最好的事情,我可以說它是算法上簡單的返回一個引用組裝散列比傳遞它作爲一個列表。 (「重複」引用*數組*。) – Axeman 2011-04-08 16:30:34