Hello Moose list, Apologies if this is a dumb question, but I have repeatedly tried to understand this section of the documentation, and I need some help:
http://search.cpan.org/~ether/Moose-2.1404/lib/Moose/Manual/Attributes.pod#Accessor_methods <http://search.cpan.org/~ether/Moose-2.1404/lib/Moose/Manual/Attributes.pod#Accessor_methods> I want to create a class that has some attributes. However, there’s some logic that needs to be executed when setting values on these attributes. In some cases, I’ll need to throw an error like “you can’t set that value on this object attribute”, I also need to be able to modify the value on the way into the object sort of like a DECODE() statement in SQL, etc. This seems like I’d just need to declare a writer sub for the attribute, do my logic in there, then set the attribute value or throw an error, right? Why doesn't this work? package Bogus { use Moose; has ‘value’, is => “rw”, writer => “_value”, isa => “Num”; sub _value { my ($self, $value) = @_; ## insert some logic here $self->value($value); return(1); } } use Bogus; my $a = new Bogus(value => 1); Can what I’m trying to do even be done in Moose? again, sorry for the dumb question. I’m quite sure I’ve just missed something in my understanding. thanks everyone, -Andy