I'm a fan of keeping the parenthesis for user-defined subroutines, and you give an example of why.
Your methods will have the string "obsoleted" in them. With warnings enabled a warning will be issued. With strict enabled it'll be a fatal error.
This is because when the methods are defined there is no &obsoleted subroutine and you don't indicate it's a subroutine in any way.
Defining &obsoleted above the methods would solve this, but personally I'd just use parenthesis and not worry about where I define subroutines.
See perltoc if you don't know which perldoc to read!
Read argumentation in its context!