In Contexts and contextualizers§
See primary documentation in context for Boolean.
This context will force a variable to be interpreted as True
or False
.
say "Hey" if 7; # OUTPUT: «Hey» say "Ahoy" if "";
This context appears in expressions such as if
or while
, and is equivalent to calling so
on these values.
say "Hey" if 7.so; # OUTPUT: «Hey» say "Ahoy" if not set().so; # OUTPUT: «Ahoy»
In general, non-zero, non-empty will be converted to True
; zero or empty will be equivalent to False
. But .so
can be defined to return any Boolean value we want, so this is just a rule of thumb.
The ?
Boolean context operator and the !
negated Boolean context operator will force the Boolean context on an object.
say ? 0i; # OUTPUT: «False» say ! :true; # OUTPUT: «False»