Perl 6 / все про parentheses

Еще раз о скобках

В Perl 6 при вызове функции запрещено ставить пробел между ее именем и открывающей скобкой. В некоторых случаях такое требование может вызвать недоумение, однако существуют случаи, когда дополнительный пробел изменяет смысл написанного:

say 3.14.WHAT;
say (3.14).WHAT;

Первые две строки печатают одно и то же — действительный тип числа 3,14: Rat.

Однако, если убрать пробел, то метод WHAT оказывается примененным к результату выполнения функции say().

say(3.14).WHAT;
(say(3.14)).WHAT;

Оба примера напечатают 3.14,  то есть будет выполнена функция say(), а результат работы метода WHAT останется неиспользованным. Во втором случае дополнительные скобки не меняют семантику, но делают код более прозрачным.

what, parentheses, function, invoke — 15 апреля 2007