$ perl -MO=Deparse,-p -e 'print "foo, " . (1 ? "yes" : "no") . " bar";' print('foo, yes bar'); -e syntax OK #### $ perl -MO=Deparse,-p -e 'print (1 ? "yes" : "no") . " bar";' (print('yes') . ' bar'); -e syntax OK #### $ perl -e '$x = print "foo, " . (1 ? "yes" : "no") . " bar"; print "\n$x\n"' foo, yes bar 1 #### $ perl -e '$x = print (1 ? "yes" : "no") . " bar"; print "\n$x\n"' yes 1 bar #### use strict; use warnings; #### $ perl -e 'use strict; use warnings; print (1 ? "yes" : "no") . " bar";' print (...) interpreted as function at -e line 1. Useless use of concatenation (.) or string in void context at -e line 1. yes