in reply to Strange interaction between print and the ternary conditional operator
print works like a function, so print $foo acts like print($foo). you gotta print something before the parens to make it work, like print "".(1?"y":"n")."x" or better yet use join print join "", (1?"y":"n"), "x"