From perlsytle:
Along the same lines, just because you CAN omit parentheses in many places doesn't mean that you ought to:
return print reverse sort num values %array;
return print(reverse(sort num (values(%array))));
When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi.
Even if you aren't in doubt, consider the mental welfare of the person who has to maintain the code after you, and who will probably put parentheses in the wrong place.
My rule of thumb is that if the syntax and meaning are perfectly clear without parenthesis, you can omit them. If leaving them out makes the code confusing, alters the outcome, or impedes readability, better include them.