#!/usr/local/bin/perl -w use strict; package CA; use base 'Class::Accessor'; __PACKAGE__->mk_accessors(qw(a b c)); package LA; use Lexical::Attributes; sub new {bless [] => shift} has $.a is rw; has $.b is rw; has $.c is rw; package main; use Benchmark; my %methods = map { my $name = $_; $_ => sub { my $object = $name->new; $object->a(1); $object->b(2); $object->c(3); } } qw(CA LA); timethese (500000, \%methods); __END__ Benchmark: timing 500000 iterations of CA, LA... CA: 10 wallclock secs (10.25 usr + 0.02 sys = 10.27 CPU) @ 48685.49/s (n=500000) LA: 7 wallclock secs ( 5.98 usr + 0.00 sys = 5.98 CPU) @ 83612.04/s (n=500000)