package Foo; use strict; use warnings; use Benchmark qw(cmpthese); sub new { bless {}, shift; } sub meth { 1 } my $obj = new Foo; cmpthese (-3, { class => sub { Foo->meth($obj) }, method => sub { $obj->meth() }, direct => sub { Foo::meth() }, }); ### results Rate class method direct class 464126/s -- -50% -64% method 923914/s 99% -- -28% direct 1289819/s 178% 40% --