Why the empty prototype in the first alternative?

yeah, you could leave that out, but then I have to invent a name

Really? Anonymous subroutines/coderefs are defined with sub {} are they not?