Did you happen to see what your friend was testing? Or what version he was using? There's been a bug for a long time that something like
push CONSTANT-EXPRESSION ? @a : @b, LIST; works when it shouldn't, where CONSTANT-EXPRESSION is a constant or operations that result in a constant, like:
use constant OS => $^O;
push OS eq "linux" ? @a : @b, "tux";
Don't rely on this to continue working: it's clearly a bug. Always use the @{ expression resulting in an arrayref } instead.
Using non-constant expressions before the ?, it fails for me on 5.6.2, 5.8.0, 5.8.8, and 5.9.5.