19 Jun 2021 00:54:35 UTC
- Distribution: MooseX-SetOnce
- Module version: 0.201
- Source (raw)
- Browse (raw)
- How to Contribute
- Repository (git clone)
- Issues (2)
- Testers (1058 / 2 / 0)
- KwaliteeBus factor: 1
- 100.00% Coverage
- License: perl_5
- Activity24 month
- Download (16.03KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:1 non-PAUSE userRJBS Ricardo SIGNES 😄and 4 contributors
- Ricardo SIGNES
- Jesse Luehrs
- Karen Etheridge
- Kent Fredric
MooseX::SetOnce - write-once, read-many attributes for Moose
Add the "SetOnce" trait to attributes:
package Class; use Moose; use MooseX::SetOnce; 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: it's 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>
Jesse Luehrs <email@example.com>
Karen Etheridge <firstname.lastname@example.org>
Kent Fredric <email@example.com>
This software is copyright (c) 2021 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.
Module Install Instructions
To install MooseX::SetOnce, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install MooseX::SetOnce
For more information on module installation, please visit the detailed CPAN module installation guide.