JSON::DWIW::Boolean - Return a true or false value when evaluated


JSON-DWIW documentation Contained in the JSON-DWIW distribution.

Index


Code Index:

NAME

Top

JSON::DWIW::Boolean - Return a true or false value when evaluated in boolean context -- to be used with JSON::DWIW->encode() to explicitly specify a boolean value.`

SYNOPSIS

Top

 use JSON::DWIW;
 my $val1 = JSON::DWIW->true;
 my $val2 = JSON::DWIW->false;

 # or

 use JSON::DWIW::Boolean;
 my $val1 = JSON::DWIW::Boolean->new(1); # true value
 my $val2 = JSON::DWIW::Boolean->new(0); # false value

DESCRIPTION

Top

This module is not intended to be used directly. It is intended to be used as part of JSON::DWIW to specify that a true or false value should be output when converting to JSON, since Perl does not have explicit values for true and false.

Overloading is used, so if a JSON::DWIW::Boolean object is evaluated in boolean context, it will evaluate to 1 or 0, depending on whether the object was initialized to true or false.

METHODS

Top

new($val)

Returns an object initialized with $val as its boolean value.

true()

Class method that returns a new object initialized to a true value.

false()

Class method that returns a new object initialized to a false value.

AUTHOR

Top

Don Owens <don@regexguy.com>

LICENSE AND COPYRIGHT

Top


JSON-DWIW documentation Contained in the JSON-DWIW distribution.
# Creation date: 2007-05-10 20:29:02
# Authors: don
#
# Copyright (c) 2007-2010 Don Owens <don@regexguy.com>.  All rights reserved.
#
# This is free software; you can redistribute it and/or modify it under
# the Perl Artistic license.  You should have received a copy of the
# Artistic license with this distribution, in the file named
# "Artistic".  You may also obtain a copy from
# http://regexguy.com/license/Artistic
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.

use strict;
use warnings;

use 5.006_00;

package JSON::DWIW::Boolean;

use overload
    bool => sub { my $self = shift; my $val = $$self; return $val ? 1 : 0; },
    '0+' => sub { my $self = shift; my $val = $$self; return $val ? 1 : 0; };
    

our $VERSION = sprintf("%d.%02d",(q$Revision: 1.4 $ =~ /\d+/g));


sub new {
    my $proto = shift;
    my $val = shift;

    my $obj = $val;
    
    my $self = bless \$obj, ref($proto) || $proto;
    
    return $self;
}

sub true {
    my $proto = shift;
    return $proto->new(1);
}

sub false {
    my $proto = shift;
    return $proto->new(0);
}

sub as_bool {
    my $self = shift;
    my $val = $$self;

    if ($val) {
        return 1;
    }
    return;
}


1;

# Local Variables: #
# mode: perl #
# tab-width: 4 #
# indent-tabs-mode: nil #
# cperl-indent-level: 4 #
# perl-indent-level: 4 #
# End: #
# vim:set ai si et sta ts=4 sw=4 sts=4: