Skip to content

Instantly share code, notes, and snippets.

@jose-neta
Forked from mjsr/benchmark_sub_args.pl
Last active August 29, 2015 14:19
Show Gist options
  • Save jose-neta/f44c1fc690c6e6074550 to your computer and use it in GitHub Desktop.
Save jose-neta/f44c1fc690c6e6074550 to your computer and use it in GitHub Desktop.
#!perl
# source: http://www.perlmonks.org/?node_id=575918
use warnings;
use strict;
use Benchmark;
timethese(1_000_000, {
'use_shift' => sub { sub_with_shift(0..9) },
'use_list' => sub { sub_with_list(0..9) },
'use_direct' => sub { sub_with_direct(0..9) },
});
sub sub_with_shift
{
my $sum = 0;
while (@_)
{
$sum += shift;
}
$sum;
}
sub sub_with_list
{
my(@a)=@_;
my $sum = 0;
$sum += $_
for @a;
$sum;
}
sub sub_with_direct
{
my $sum = 0;
$sum += $_
for @_;
$sum;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment