What is the reason to use parenthesis-less subroutine calls in Perl?

There are no technical reasons to omit parentheses. It's purely a matter of preferred coding style.


I think the only time that it actually matters, other than style, is for the rarely used &subname which according to perldoc perlsub:

&NAME;     # Makes current @_ visible to called subroutine.

Of course, using parens might make for easier disambiguation in some cases (both for the parser and the future reader), or else not using them might remove noise in others; the degree to which either of those is necessary is probably the primary reason I would ever choose one or the other.


From Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins:

Conway suggests that all built-in functions be called without parentheses around the argument list. This reduces visual clutter and disambiguates built-in functions from user functions.

Conway is the author of the Perl Best Practices book.