in reply to Perl dropping " at line xxx" from warnings when "\n" is present

It's a feature. die works the same way, e.g.

perl -e 'die "foo"' perl -e 'die "foo\n"'

It's useful if you want to report a warning or fatal error to a user as opposed to a programmer, since a user woudldn't care about scary line-numbers and such. It doesn't affect passing exception objects, since if you're passing an object do die you won't be passing a string that could contain "\n".