The constructor isn’t to blame. It sounds like you expect the => operator to create scalar context, but it doesn’t. There are many who agree that => really ought to create scalar context, but this is one of those back-compat things that will probably never change. You can force scalar context with the scalar keyword, though.