Venus::Boolean - Boolean Class
Boolean Class for Perl 5
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; # $boolean->negate;
This package provides a representation for boolean values.
This package inherits behaviors from:
Venus::Kind::Value
This package provides the following methods:
cast(string $kind) (object | undef)
The cast method converts "value" objects between different "value" object types, based on the name of the type provided. This method will return undef if the invocant is not a Venus::Kind::Value.
undef
Since 0.08
0.08
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('array'); # bless({ value => [0] }, "Venus::Array")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('boolean'); # bless({ value => 0 }, "Venus::Boolean")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('code'); # bless({ value => sub { ... } }, "Venus::Code")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('float'); # bless({ value => "0.0" }, "Venus::Float")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('hash'); # bless({ value => { "0" => 0 } }, "Venus::Hash")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('number'); # bless({ value => 0 }, "Venus::Number")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('regexp'); # bless({ value => qr/(?^u:0)/ }, "Venus::Regexp")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('scalar'); # bless({ value => \0 }, "Venus::Scalar")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('string'); # bless({ value => 0 }, "Venus::String")
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new; my $cast = $boolean->cast('undef'); # bless({ value => undef }, "Venus::Undef")
default() (boolean)
The default method returns the default value, i.e. 0.
0
Since 0.01
0.01
# given: synopsis; my $default = $boolean->default; # 0
eq(any $arg) (boolean)
The eq method performs an "equals" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->eq($rvalue); # 1
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->eq($rvalue); # 1
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->eq($rvalue); # 1
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->eq($rvalue); # 1
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->eq($rvalue); # 1
ge(any $arg) (boolean)
The ge method performs a "greater-than-or-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->ge($rvalue); # 1
gele(any $arg1, any $arg2) (boolean)
The gele method performs a "greater-than-or-equal-to" operation on the 1st argument, and "lesser-than-or-equal-to" operation on the 2nd argument.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->gele($rvalue); # 1
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gele($rvalue); # 1
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gele($rvalue); # 1
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->gele($rvalue); # 1
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gele($rvalue); # 1
gt(any $arg) (boolean)
The gt method performs a "greater-than" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gt($rvalue); # 0
gtlt(any $arg1, any $arg2) (boolean)
The gtlt method performs a "greater-than" operation on the 1st argument, and "lesser-than" operation on the 2nd argument.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gtlt($rvalue); # 0
is_false() (boolean)
The is_false method returns false if the boolean is falsy, otherwise returns true.
false
true
# given: synopsis; my $is_false = $boolean->is_false; # 1
is_true() (boolean)
The is_true method returns true if the boolean is truthy, otherwise returns false.
# given: synopsis; my $is_true = $boolean->is_true; # 0
le(any $arg) (boolean)
The le method performs a "lesser-than-or-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->le($rvalue); # 1
lt(any $arg) (boolean)
The lt method performs a "lesser-than" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->lt($rvalue); # 0
ne(any $arg) (boolean)
The ne method performs a "not-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->ne($rvalue); # 0
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->ne($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->ne($rvalue); # 0
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->ne($rvalue); # 0
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->ne($rvalue); # 0
negate() (boolean)
The negate method returns true if the boolean is falsy, otherwise returns false.
# given: synopsis; my $negate = $boolean->negate; # 1
numified() (number)
The numified method returns the numerical representation of the object.
# given: synopsis; my $numified = $boolean->numified; # 1
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new(0); my $numified = $boolean->numified; # 0
package main; use Venus::Boolean; my $boolean = Venus::Boolean->new(1); my $numified = $boolean->numified; # 1
string() (string)
The string method returns the word 'true' if the boolean is truthy, otherwise returns 'false'. This method was formerly named "type".
'true'
'false'
# given: synopsis; my $string = $boolean->string; # "false"
tv(any $arg) (boolean)
The tv method performs a "type-and-value-equal-to" operation using argument provided.
package main; use Venus::Array; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Array->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Boolean->new; my $result = $lvalue->tv($rvalue); # 1
package main; use Venus::Code; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Code->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Float; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Float->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Hash; use Venus::Boolean; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; use Venus::Number; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Number->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; use Venus::Regexp; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; use Venus::Scalar; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; use Venus::String; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::String->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Boolean; use Venus::Undef; my $lvalue = Venus::Boolean->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->tv($rvalue); # 0
This package overloads the following operators:
(!)
This package overloads the ! operator.
!
example 1
# given: synopsis; my $result = !$boolean; # 1
(!=)
This package overloads the != operator.
!=
# given: synopsis; my $result = $boolean != 1; # 1
(==)
This package overloads the == operator.
==
# given: synopsis; my $result = $boolean == 0; # 1
(>)
This package overloads the > operator.
>
# given: synopsis; my $result = $boolean > 0; # 0
(>=)
This package overloads the >= operator.
>=
# given: synopsis; my $result = $boolean >= 0; # 1
(<)
This package overloads the < operator.
<
# given: synopsis; my $result = $boolean < 1; # 1
(<=)
This package overloads the <= operator.
<=
# given: synopsis; my $result = $boolean <= 0; # 1
(bool)
This package overloads the bool operator.
bool
# given: synopsis; my $result = !!$boolean; # 0
(eq)
This package overloads the eq operator.
eq
# given: synopsis; my $result = $boolean eq '0'; # 1
(ne)
This package overloads the ne operator.
ne
# given: synopsis; my $result = $boolean ne '1'; # 1
(qr)
This package overloads the qr operator.
qr
# given: synopsis; my $result = '0' =~ qr/$boolean/; # 1
Awncorp, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2000, Awncorp, awncorp@cpan.org.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.