Larry wrote:
I am overstating the case
when I say there's no boolean type in Perl. What I really mean is that
there is no such thing as a single true "true" value.
Curiously, junctions do get us quite close to the possibility of
canonical true and false values:
my $false is constant = any(0,"0","",undef);
my $true is constant = none(0,"0","",undef);
Unfortunately, both list context and the handy new C<but false>
property undermine those cunning scalar-value-based definitions.
I don't mind a bool type. But you'll notice I've grabbed the keyword true()
to be a unary function. It will not default to "true". Perhaps it should
default to "undef". :-)
<grin>
Surely it won't be an issue, since we won't be able to call unary C<true>
or C<false> without an argument and that argument will always be either
true or false (or some junction thereof).
$.is_plugged_in = true but false;
So that probably won't even parse.
Thank goodness!
Of course, this *will* parse:
$perplexing = false "true" but false;
>;-)
Damian