in reply to Evaluating the condition ($x)

B::Deparse is maybe illuminating. In either case it looks like the LHS of the second assignment winds up being $z which is then assigned "false\n".

$ perl -MO=Deparse,-p,-q -E '($x) ? $z = "true\n" : $z = "false\n"; +print $z;' use feature 'current_sub', 'bitwise', 'evalbytes', 'fc', 'isa', 'modul +e_true', 'postderef_qq', 'say', 'signatures', 'state', 'unicode_strin +gs', 'unicode_eval'; (($x ? ($z = "true\n") : $z) = "false\n"); print($z); -e syntax OK

The cake is a lie.
The cake is a lie.
The cake is a lie.