我正在阅读“Beginning Perl”一书,它给出了以下两个陈述:
print "Test one: ", 6 > 3 && 3 > 4, "\n";
print "Test two: ", 6 > 3 and 3 > 4, "\n";
第一行不打印新行,第二行打印没有新行的 1。
我对输出感到困惑。根据作者的说法,第二条语句给出了奇怪的输出,因为它就像在说:
print ("Test two: ", 6 > 3) and 3 > 4, "\n";
但是,为什么第一个说法不一样呢?我认为这与打印的优先级有关。&& 的优先级高于打印,因此首先对其进行评估,然后再打印。而“and”的优先级低于 print,因此 6 > 3 将被打印,print 返回 1,然后用“and”计算。然而,这并没有真正的意义。
我已经阅读了有关列表运算符的优先级如何工作的 Perl 文档,但我仍然不理解这个示例。你们能剖析这两个语句,然后告诉我首先打印的是什么吗?您能否解释一下 Perl 文档中提到列表运算符为“左”和“右”时的含义?谢谢。
非常感谢大家的回答。我现在明白了。我确实在做cjm所说的,并认为有向左和向右的列表运算符。所以现在我明白了它的意思,我明白了整个事情。