sub sum {
my @numbers = @_;
my $sum = 0;
foreach my $num (@numbers){ $sum += $num }
$sum;
}
print sum( 1 .. 100_000 ),"\m";
####
sub sum {
my ($numbers_ref) = @_;
my $sum = 0;
foreach my $num (@$numbers_ref){ $sum += $num };
$sum;
}
print sum([1..100_000]), "\n";
####
#!/user/bin/perl
use strict;
use warnings;
use Time::HiRes qw(gettimeofday tv_interval);
sub sum {
my ($numbers_ref) = @_;
my $sum = 0;
foreach my $num (@$numbers_ref){ $sum += $num };
return $sum;
} # end sub sum()
my $t0 = [gettimeofday];
print sum([1..100_000]);
print "\n";
my $t1 = [gettimeofday];
my $elapsed = tv_interval($t0, $t1);
print "\n";
print "Elapsed time: $elapsed seconds\n";
exit(0);
####
First version of sub(): 0.027007 seconds
Second version of sub(): 0.024075 seconds
####
First version of sum(): 0.09366 seconds
Second version of sum(): 0.372829 seconds