Manual Reference Pages - MOOSEX::SETONCE (3)
MooseX::SetOnce - write-once, read-many attributes for Moose
Add the SetOnce trait to attributes:
has some_attr => (
is => rw,
traits => [ qw(SetOnce) ],
...and then you can only set them once:
my $object = Class->new;
$object->some_attr(10); # works fine
$object->some_attr(20); # throws an exception: its already set!
The SetOnce attribute lets your class have attributes that are not lazy and
not set, but that cannot be altered once set.
The logic is very simple: if you try to alter the value of an attribute with
the SetOnce trait, either by accessor or writer, and the attribute has a value,
it will throw an exception.
If the attribute has a clearer, you may clear the attribute and set it again.
Ricardo SIGNES <firstname.lastname@example.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
|perl v5.20.3 ||MOOSEX::SETONCE (3) ||2013-10-05 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.