В Perl 6 нет голых слов в том смысле, что они существуют в Perl 5, и этот термин вообще не используется в Perl 6.
Есть два случая, которые мы могли бы назвать «голыми»identifier ":
- Идентификатор, за которым сразу следуют ноль или более горизонтальных пробельных символов (
\h*
), за которыми следуют символы =>
.Принимается идентификатор слева в качестве ключа пары, а термин, проанализированный после =>
, в качестве значения пары.Это полностью синтаксическое решение;например, наличие элемента sub или типа с этим идентификатором не окажет никакого влияния. - Идентификатор, за которым следует пробел (или какой-либо другой разделитель или терминатор операторов).Если тип имени уже существует, то он компилируется в ссылку на объект типа.В противном случае он всегда будет приниматься как дополнительный вызов.Если никакое подчиненное объявление с таким именем еще не существует, оно будет считаться обращением к объявленному подчиненному элементу, и будет произведена ошибка во время CHECK, если подпрограмма с таким именем не будет объявлена позднее.
Эти два случая связаны только в том смысле, что они оба являются term
s в грамматике Perl 6, и что они оба стремятся проанализировать identifier
, которые следуют стандартным правилам, связанным ввопрос .Какой выигрыш определяется семантикой Longest Token Matching;существует ограничение на наличие только горизонтального пробела между идентификатором и =>
, чтобы гарантировать, что идентификатор, пробел и =>
будут вместе считаться декларативным префиксом, и поэтому случай 1 всегда будет преобладать над случаем 2.