Parentheses are required when clarification is required. For example, if you don't prototype your subroutine, then you must use either an ampersand & or parentheses to tell Perl that its a user defined subroutine. You are probably not using strict or warnings, so the bareword message probably slipped past you unnoticed. I'm not sure why the deparser would drop the parentheses, but it makes sense that you would need them.