Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
boolean(3)	      User Contributed Perl Documentation	    boolean(3)

NAME
       boolean - Boolean support for Perl

VERSION
       This document describes boolean version 0.46.

SYNOPSIS
	   use boolean;

	   do &always if true;
	   do &never if	false;

	   do &maybe if	boolean($value)->isTrue;

       and:

	   use boolean ':all';

	   $guess = int(rand(2)) % 2 ? true : false;

	   do &something if isTrue($guess);
	   do &something_else if isFalse($guess);

DESCRIPTION
       Most programming	languages have a native	"Boolean" data type. Perl does
       not.

       Perl has	a simple and well known	Truth System. The following scalar
       values are false:

	   $false1 = undef;
	   $false2 = 0;
	   $false3 = 0.0;
	   $false4 = '';
	   $false5 = '0';

       Every other scalar value	is true.

       This module provides basic Boolean support, by defining two special
       objects:	"true" and "false".

RATIONALE
       When sharing data between programming languages,	it is important	to
       support the same	group of basic types. In Perlish programming
       languages, these	types include: Hash, Array, String, Number, Null and
       Boolean.	Perl lacks native Boolean support.

       Data interchange	modules	like YAML and JSON can now "use	boolean" to
       encodedecoderoundtrip Boolean values.

FUNCTIONS
       This module defines the following functions:

       "true"
	   This	function returns a scalar value	which will evaluate to true.
	   The value is	a singleton object, meaning there is only one "true"
	   value in a Perl process at any time.	You can	check to see whether
	   the value is	the "true" object with the isTrue function described
	   below.

       "false"
	   This	function returns a scalar value	which will evaluate to false.
	   The value is	a singleton object, meaning there is only one "false"
	   value in a Perl process at any time.	You can	check to see whether
	   the value is	the "false" object with	the isFalse function described
	   below.

       "boolean($scalar)"
	   Casts the scalar value to a boolean value. If $scalar is true, it
	   returns "boolean::true", otherwise it returns "boolean::false".

       "isTrue($scalar)"
	   Returns "boolean::true" if the scalar passed	to it is the
	   "boolean::true" object. Returns "boolean::false" otherwise.

       "isFalse($scalar)"
	   Returns "boolean::true" if the scalar passed	to it is the
	   "boolean::false" object. Returns "boolean::false" otherwise.

       "isBoolean($scalar)"
	   Returns "boolean::true" if the scalar passed	to it is the
	   "boolean::true" or "boolean::false" object. Returns
	   "boolean::false" otherwise.

METHODS
       Since true and false return objects, you	can call methods on them.

       "$boolean->isTrue"
	   Same	as isTrue($boolean).

       "$boolean->isFalse"
	   Same	as isFalse($boolean).

USE OPTIONS
       By default this module exports the "true", "false" and "boolean"
       functions.

       The module also defines these export tags:

       ":all"
	   Exports "true", "false", "boolean", "isTrue", "isFalse",
	   "isBoolean"

DEPRECATIONS
       This module offered an export tag, "-truth", that overrides the Perl
       interpreter's internal values for true and false. This has been found
       to corrupt the interpreter in some circumstances. Also, these overrides
       will no longer be possible as of	Perl 5.22. Therefore, the "-truth"
       import tag is deprecated.

JSON SUPPORT
       JSON::MaybeXS (or less preferably JSON.pm ) will	encode Perl data with
       boolean.pm values correctly if you use the "convert_blessed" option:

	   use JSON::MaybeXS;
	   use boolean -truth;
	   my $json = JSON::MaybeXS->new->convert_blessed;
	   say $json->encode({false => (0 == 1)});     # Says: '{"false":false}',

AUTHOR
       Ingy dA<paragraph>t Net <ingy@cpan.org>

COPYRIGHT AND LICENSE
       Copyright 2007-2016. Ingy dA<paragraph>t	Net.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       See <http://www.perl.com/perl/misc/Artistic.html>

perl v5.24.1			  2016-07-08			    boolean(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | RATIONALE | FUNCTIONS | METHODS | USE OPTIONS | DEPRECATIONS | JSON SUPPORT | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=boolean&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help