On Oct 15, 2007, at 11:25 PM, Gary Blackburn wrote:
>
> On Oct 15, 2007, at 4:27 PM, Michael Barto wrote:
>
>> As both Java and Javascript both have a 'true' and 'false' or
>> Boolean data type, is there any interest in evolution of Perl to
>> have a true Boolean. Or what is the preferred method to do this in
>> Perl. The "C" programmers want me to use "0"'s and "1"'s.
>
> In my experience the most common convention is to use undef and 1
> as your boolean values, as in:
>
> my $is_scared; # is_scared is initially set to undef, which
> evaluates as "false"
>
> if ($monsters_under_my_bed) {
> $is_scared = 1;
> }
>
> Yeah, it's probably bad karma to use "undef" when you mean "0" but
> this approach is very perl-ish, easy to read, and even recommended
> by Damian Conway in his "Perl Best Practices" book (page 40... just
> checked. :-D)
You can, if you really want to, do this:
my $true = 1;
my $false;
Still, it is not much of a substitute for knowing what exactly is
_inside_ your variable and testing it to make sure. Plus, boolean
values are un-perlish. Look at this for example:
if ($var) {
print "Yep!";
} else {
print "Nep!";
}
That is perlish, testing if $var is defined and doing some thing
based on that. You can of course make it clearer with
if ( defined ($var))
But to be really perly and terse, this is the idiom:
print "Yep" if ($var);
Jeremiah


|