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