package This::That; use Moose; has 'FOO' => (is => 'rw', lazy => 1, builder=> '_build_foo'); has 'BAR' => (is => 'rw', lazy => 1, builder=> '_build_bar'); with qw(SQLConnection); sub _build_foo { (shift)->_build_generic('FOO') } sub _build_bar { (shift)->_build_generic('BAR') } sub _build_generic { my ($self, $attribute_name) = @_; my $sth = $self->dbh->prepare('select $attribute_name from table where x=? and y=?'); $sth->execute(1,2); return $sth->fetchrow_array; }