On Tue, Aug 18, 2009 at 12:07 PM, Yuri Shtil<yu...@juniper.net> wrote:
> Hi,
>
> Is there a way to change access to a lazy attribute to read-only once the
> value has been set in the builder?

This question doesn't exactly make sense. Builder / Default have
nothing to do with the access of the attribute:

package Example;
use Moose;

has name => ( is => 'ro', lazy => 1, builder => '_build_foo' );
sub _build_foo { __PACKAGE__ }

say Example->new->name; # prints __PACKAGE__ from _build_foo
say Example->new->name('bar') # this will blow up even though
_build_foo was never called

my $ex = Example->new;

say $ex->name; # prints __PACKAGE__
$ex->name('bar') # blows up

Is this the behavior you want? This works by default.

-Chris

Reply via email to