in reply to Moose and default values
...but the downside is that the default-value is not declared with the attribute but buried in the BUILDer-code and to make this work the attribute has to be "rw".
How about using the initializer option?
use strict; use warnings; use 5.012; package Dog; use Moose; has color => ( is => "ro", initializer => sub { my ($self, $attr_val, $setter) = @_; defined $attr_val or $setter->('black'); } ); my $dog = Dog->new(color => undef); say $dog->color; --output:-- black
I am not so much interested in the feature itself, but it is interesting to see some examples of Moose-metaprogramming at work...
Never mind.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Moose and default values
by tobyink (Canon) on Feb 21, 2013 at 13:17 UTC | |
by 7stud (Deacon) on Feb 22, 2013 at 00:06 UTC | |
by tobyink (Canon) on Feb 22, 2013 at 11:41 UTC |