use strict; use warnings; package Counter; use self; sub new { bless { n => 1}, shift }; sub v { return $self->{n} } sub m { return self->{n} } package main; use Benchmark qw(:all); my $c = new Counter; cmpthese(500000, { '$self' => sub { $c->v }, 'self' => sub { $c->m }, })