I always use parens when calling user-defined subroutines and methods (except when playing golf) because:
- The consistency of always using parens when calling user-defined subroutines/methods makes the code easier to read (for me).
- Code tends to be more robust if it is reorganized in the future. For example, if you later switch from use (compile-time) to require (run-time) (to speed initial module load or when porting to a new platform, say) your code may break in surprising ways. Even if you can "easily" fix the code to use parens (so that it will parse correctly with require), doing so risks breaking what might be thousands of lines of working production code ... so avoid that future risk by always using parens in the first place.
This is essentially the same advice given in
Perl Best Practices.
The first item in Chapter 9 is:
"Call subroutines with parentheses but without a leading &".
Luckily, Chapter 9 happens to be the
free sample chapter
from this book so you can read why Damian offers this advice right now.