See Original text in context
method so()
Evaluates the item in Boolean context (and thus, for instance, collapses Junctions), and returns the result. It is the opposite of not
, and equivalent to the ?
operator.
One can use this method similarly to the English sentence: "If that is so, then do this thing". For instance,
my = <-a -e -b -v>;my = any() eq '-v' | '-V';if .so# OUTPUT: «Verbose option detected in arguments»
The $verbose-selected
variable in this case contains a junctions, whose value is any(any(False, False), any(False, False), any(False, False), any(True, False))
. That is actually a truish value; thus, negating it will yield False
. The negation of that result will be True
. so
is performing all those operations under the hood.
See Original text in context
multi sub prefix:<so>(Mu --> Bool)
Coerces its argument to Bool
, has looser precedence than prefix:<?>
.
See Original text in context
multi sub prefix:<so>(Mu --> Bool)
Evaluates its argument in Boolean context (and thus collapses Junctions), and returns the result.