package Data::Perl::Role::Bool; { $Data::Perl::Role::Bool::VERSION = '0.002001'; } # ABSTRACT: Wrapping class for boolean values. use strictures 1; use Role::Tiny; sub new { my $bool = $_[1] ? 1 : 0; bless(\$bool, $_[0]) } sub set { ${$_[0]} = 1 } sub unset { ${$_[0]} = 0 } sub toggle { ${$_[0]} = ${$_[0]} ? 0 : 1; } sub not { !${$_[0]} } 1; =pod =head1 NAME Data::Perl::Role::Bool - Wrapping class for boolean values. =head1 VERSION version 0.002001 =head1 SYNOPSIS use Data::Perl qw/bool/; my $bool = bool(0); $bool->toggle; # 1 $bool->unset; # 0 =head1 DESCRIPTION This class provides a wrapper and methods for interacting with boolean values. =head1 PROVIDED METHODS None of these methods accept arguments. =over 4 =item B Constructs a new Data::Perl::Collection::Bool object initialized with the passed in value, and returns it. =item * B Sets the value to C<1> and returns C<1>. =item * B Set the value to C<0> and returns C<0>. =item * B Toggles the value. If it's true, set to false, and vice versa. Returns the new value. =item * B Equivalent of 'not C<$value>'. =back =head1 SEE ALSO =over 4 =item * L =item * L =back =head1 AUTHOR Matthew Phillips =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Matthew Phillips . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut __END__ ==pod