in reply to Simple Mouse/Moose question
It's not a question of lack of access. You wrap the function that gets the value to assign to "n", which means the value hasn't been assigned to "n" yet.
$self->{n} = sub { my ($self) = @_; my $rv = $self->do_n(); $self->do_n2(); return $rv; }->();
Now sure how to fix your problem since you didn't specify what you wanted to do. Perhaps
#!/usr/bin/perl -w use strict; { package Test; use Mouse; has 'n' => ( is => 'rw', isa => 'Int', default => 3 ); has 'n2' => ( is => 'rw', isa => 'Int', lazy => 1, default => sub { $_[0]->n + 1 } ); __PACKAGE__->meta->make_immutable(); } my $test = Test->new(); print($test->n, "\n"); # 3 print($test->n2, "\n"); # 4
|
|---|