in reply to ||= oddity

(1,2,3) is evaluated in scalar context, but I cannot explain the error you get. You get a much more meaningful error with warnings enabled: Useless use of a constant in void context

Unless I state otherwise, all my code runs with strict and warnings