in reply to Re^2: Using ternary operator as lvalue in push
in thread Using ternary operator as lvalue in push

my $c = 1; push $c>0 ? @a : @b, "foo";
is not optimized by the compiler. It only folds constants. $c is not a constant. On the other hand, the following would be optimized:
use constant c => 1; push c>0 ? @a : @b, "foo";