my @numbs = qw(1 2 3 4 5 6 7 8 9 10);
# loop style
sub loop {
my $numbs = shift;
my $sum;
map { $sum += $_; } @{$numbs};
return $sum;
}
# recursive style - warning: destroys array
sub recurse {
my ($numbs, $sum) = @_;
if (scalar @{$numbs}) {
$sum += pop @{$numbs};
&recurse($numbs, $sum);
}
else {
return $sum;
}
}
####
Benchmark: timing 100000 iterations of Loop, Recursive...
Loop: 1 wallclock secs ( 0.70 usr + 0.00 sys = 0.70 CPU)
Recursive: 1 wallclock secs ( 0.68 usr + 0.00 sys = 0.68 CPU)
##
##
Benchmark: timing 100000 iterations of Guass...
Guass: 1 wallclock secs ( 0.49 usr + 0.00 sys = 0.49 CPU)