Documentation for routine ( )
Documentation for routine ( ), assembled from the following types:
The grouping operator.
An empty group
() creates an empty list. Parentheses around non-empty expressions simply structure the expression, but do not have additional semantics.
In an argument list, putting parenthesis around an argument prevents it from being interpreted as a named argument.
multi sub p(:!)multi sub p()p a => 1; # OUTPUT: «named␤»p (a => 1); # OUTPUT: «positional␤»
Note that an identifier followed by a pair of parentheses is always parsed as a subroutine call.
If you want your objects to respond to the call operator, you need to implement a