In 运算符§

有关 infix ^^ 的主要文档,请参阅上下文

短路异或。如果存在(且仅存在)一个真参数,则返回该参数。如果所有参数都为假,则返回最后一个参数。当多个参数为真时,返回 Nil

此运算符在找到第二个真结果后不会评估任何参数,因此被称为“短路”。

say 0 ^^ 42;                             # OUTPUT: «42␤» 
say '' ^^ 0;                             # OUTPUT: «0␤» 
say 0 ^^ 42 ^^ 1 ^^ die "never called";  # OUTPUT: «Nil␤»

请注意,此运算符的语义可能与您假设的不同:infix ^^ 会翻转到它找到的第一个真值,然后在第二个真值之后_永远_翻转到 Nil,无论有多少个真值。(换句话说,它具有“找到一个真值”的语义,而不是“布尔奇偶校验”的语义。)