% perl benchmark Rate methodic blessy direct methodic 16017006/s -- -31% -40% blessy 23189661/s 45% -- -13% direct 26673243/s 67% 15% -- % /opt/v5.34.0/bin/perl benchmark Rate methodic blessy direct methodic 21275455/s -- -39% -39% blessy 34927866/s 64% -- -0% direct 35023414/s 65% 0% -- % cat benchmark use strict; use warnings; use Benchmark; our($mcount, $bcount, $dcount) = (0) x 3; package Methodic { sub new { return bless {} } sub method { ++$::mcount } }; package Blessy { sub new { return bless sub { ++$::bcount } } }; sub direct { ++$::dcount } our $methodic = Methodic->new; our $blessy = Blessy->new; our $direct = \&direct; Benchmark::cmpthese(-1, { methodic => q{$::methodic->method()}, blessy => q{$::blessy->()}, direct => q{$::direct->()}, }); %