Perl期间与逗号运算符

时间:2011-09-22 15:01:25

标签: perl comma period

有谁知道为什么

print "$str is " , ispalindrome($str)?"":" not" , " a palindrome\n" 

打印“女士是回文”

print "$str is " . ispalindrome($str)?"":" not" . " a palindrome\n"

打印“1”?

1 个答案:

答案 0 :(得分:19)

条件运算符(? :)的优先级高于逗号,但低于句点。因此,第一行被解析为:

print("$str is " , (ispalindrome($str) ? "" : " not"), " a palindrome\n")

而第二个解析为:

print(("$str is " . ispalindrome($str)) ? "" : (" not" . " a palindrome\n"))

后一行应该实际打印“”,而不是“1”;实际上你得到的是什么?