Attribute-Boolean

 view release on metacpan or  search on metacpan

lib/Attribute/Boolean/Value.pm  view on Meta::CPAN


=cut

use parent 'Exporter';
use version;
use Carp;

our $VERSION = version->declare('v1.0.7');
our @EXPORT = qw(true false);

sub true();
sub false();

use overload
   "0+"    => sub { ${$_[0]} },
   "bool"  => sub { ${$_[0]} },
   '""'    => sub { ${$_[0]} ? 'true' : 'false'},
   '!'	   => sub { ${$_[0]} ? false : true},
   '-'	   => sub { croak 'subtraction not possible'},
   '+'	   => sub { croak 'addition not possible'},
   fallback => 1
   ;

my $true  = do { bless \(my $dummy = 1), __PACKAGE__ };
my $false = do { bless \(my $dummy = 0), __PACKAGE__ };

sub true()  { $true  }
sub false() { $false }

sub TO_JSON($) {
    return $_[0] ? \1 : \0;
}

1;



( run in 0.726 second using v1.01-cache-2.11-cpan-65fba6d93b7 )