$ 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