#!/usr/bin/perl use strict; use warnings; use Benchmark qw(cmpthese); cmpthese(-60, { arg => sub { arg('foobar'); }, arg_shift => sub { arg_shift('foobar'); }, noarg => sub { $_ = 'foobar'; noarg(); }, noarg2 => sub { $_ = 'foobar'; noarg2(); }, }); sub arg { length $_[0] } sub arg_shift { length shift } sub noarg { length $_ } sub noarg2 { length } #### Rate noarg noarg2 arg_shift arg noarg 181644/s -- -6% -45% -54% noarg2 193848/s 7% -- -41% -50% arg_shift 329166/s 81% 70% -- -16% arg 391348/s 115% 102% 19% --