in reply to Learning Moose, and have a few questions.

Regarding your second question, you can do something like:

has ldap => (is => 'ro', default => sub { my $self = shift; return Net::LDAP->new($self->host); });