in reply to Defining a sub within a sub: OK?

I think this means that it thinks I'm defining a new sub, the old one wasn't terminated properly.

It means exactly what it says: your sub ends with print, but perlcritic thinks all subs should end with return. (Even if they are not intended to return a value, as in this case; perlcritic thinks that such subs should explicitly return nothing.)