sub AssembleByHash
{
my ($array_ref) = @_;
my (%result);
foreach my $row (@$array_ref)
{
$result{$row->[0]} = $row->[1];
}
return \%result;
}
####
sub AssembleByArray
{
my ($array_ref) = @_;
my (%result);
%result = map { @$_ } @$array_ref;
return \%result;
}
####
Benchmark: timing 10 iterations of AssembleByArray, AssembleByHash...
AssembleByArray: 10 wallclock secs ( 9.64 usr + 0.04 sys = 9.68 CPU) @ 1.03/s (n=10)
AssembleByHash: 1 wallclock secs ( 1.31 usr + 0.00 sys = 1.31 CPU) @ 7.63/s (n=10)
Rate AssembleByArray AssembleByHash
AssembleByArray 1.03/s -- -86%
AssembleByHash 7.63/s 639% --