use Benchmark qw/cmpthese/; sub s1 {my ($arg1, $arg2, $arg3) = @_;}; sub s2 { my $arg1 = shift; my $arg2 = shift; my $arg3 = shift; } cmpthese(200000, { shift => ' { s2(1,2,3) }', list => ' {s1(1,2,3)}', }) Benchmark: timing 200000 iterations of list, shift... list: 3 wallclock secs ( 2.14 usr + 0.01 sys = 2.15 CPU) @ 93023.26/s (n=200000) shift: 2 wallclock secs ( 2.25 usr + 0.02 sys = 2.27 CPU) @ 88105.73/s (n=200000) Rate shift list shift 88106/s -- -5% list 93023/s 6% --