The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

String::BooleanSimple - Gets the boolean representative of a string

SYNOPSIS

 # imports all functions
 use String::BooleanSimple ':all';

 # imports only is_true()
 use String::BooleanSimple qw(is_true);
 

DESCRIPTION

Some static functions returning a boolean value (0 or 1) of a string like 'true', 'false', etc. In the background it returns the value from the module boolean, which holds a true/false method. What means, if you change that rules, it would not return a 0 or 1, but whatever you defined.

REQUIRES

boolean

Exporter

METHODS

boolean

 my $boolean = boolean($string, $defaultstring);

Returns 1 if the string matches to a postive pattern like "true". Returns 0 if the string matches to a negative pattern like "false".

isFalse

 my $boolean = isFalse($string, $defaultstring);

If you like the java style, you may import that alias

isTrue

 my $boolean = isTrue($string, $defaultstring);

If you like the java style, you may import that alias

is_false

 my $boolean = is_false($string, $defaultstring);

Returns 1 if the string matches to a negative pattern like "false".

is_true

 my $boolean = is_true($string, $defaultstring);

Returns 1 if the string matches to a positive pattern like "true".

Matches

Supports these strings:

  true yes active enabled on y ok positive 1 2 3 4 5 6 7 8 9

  false no inactive disabled off n not ok negative 0

If the string does not match, it causes an error. Whitespace at the beginning or end will be automatically removed.

Default values

You may set a default string as second parameter on the functions. It works if the first value can not be indentified as valid string. An empty string is also a non-valid string and will trigger the default value.

Example:

 if ( is_true("","false") ){};

it will be false. Typical for reading config files, where a value does not allways exist.

If the default value as well is not a valid string, it dies with an error.

Module boolean

If the calling application using the module boolean, you may write it like that:

 use boolean ':all';
 use String::BooleanSimple 'boolean';

 my $s='positive'
 
 if ( isTrue( boolean($s) ) ){...};

 if ( boolean($s) == true ){...};

Please note, here the isTrue() function is part of "use boolean"! It is not imported with ':all' from String::BooleanSimple because that is a conflict.

The following example is possible and logical, but looks silly:

 if ( is_true($s) == true ){...};

Theoretically you must do like that, if "use boolean", because who knows what is realy "true" and "false"? But it is not very nice to read it and the simple way "if( is_true() )" worth to risk that maybe false is not '0'.

In other words, if the calling app is not using perl's "boolean" but somehow in perl's module "boolean" the value of true/false does not fit anymore to 1/0, it might be, that using is_true/is_false with String::BooleanSimple will cause wrong behaviour.

AUTHOR

Andreas Hernitscheck ahernit(AT)cpan.org

LICENSE

You can redistribute it and/or modify it under the conditions of LGPL.