Object::Boolean - Represent boolean values as objects
use Object::Boolean; use Object::Boolean qw/True False/; # ..or export some constants use Object::Boolean # ..or rename those constants True => { -as => 'TRUE' }, False => { -as => 'FALSE' }; # Create a "false" object by calling new() with a Perl # false value or the word 'false'. my $f = Object::Boolean->new(0); my $f = Object::Boolean->new(''); my $f = Object::Boolean->new(2+2==3); my $f = Object::Boolean->new('false'); # Create a "true" object by calling new() with anything else my $t = Object::Boolean->new(1); my $t = Object::Boolean->new(2+2==4); my $t = Object::Boolean->new('true'); my $t = Object::Boolean->new('elephant'); # In boolean context, it behaves like a boolean value. if ($f) { print "it's true" } print "\$f is false" unless $f; print "1+1==2 and it's true" if 1+1==2 && $t; # In string context, it becomes "true" or "false" print "It was a $f alarm."; print "Those are $f teeth."; # Boolean negation produces a new boolean object. print (!$f)." love is hard to find."; # Checking for numeric or string equality with other boolean # objects compares them as though they were in a boolean context. if ($t!=$f) { print "They are not the same." } # like xor if ($t==$t) { print "They are both true or both false." } if (Object::Boolean->new(1) eq Object::Boolean->new(2)) { # this will be true } # Comparison to non-boolean objects treats booleans as strings # for string equality or the numbers 0 or 1 for numeric equality my $true = Object::Boolean->new('true'); print "true" if $true eq 'true'; # true print 'true' if $true == 1; # also true print 'true' if $true == 27; # no, not true print 'true' if $true eq 'True'; # not true
Package for representing booleans as objects which stringify to true/false and numerify to 0/1. Derived classes can easily stringify/numerify to other values.
Create a new Object::Boolean object.
Object::Boolean::YesNo -- to stringify to 'Yes' and 'No' instead of 'true' and 'false'.
Version 0.02
Brian Duggan, <bduggan at matatu.org>
<bduggan at matatu.org>
Copyright 2008 Brian Duggan, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Object::Boolean, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Object::Boolean
CPAN shell
perl -MCPAN -e shell install Object::Boolean
For more information on module installation, please visit the detailed CPAN module installation guide.