You've fallen into the trap of thinking that there's such a thing as "a list in a scalar context". No such thing. Instead, operations recognize they are in a scalar context and return an "appropriate" thing. See my post On Scalar Context for details.