Еще раз о скобках
В 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