Ответ 1
Подменю say
вызывает метод .gist
. Напротив, подканал print
вызывает метод .Str
. Там также put
sub ( "print using terminator" ), который вызывает .Str
, а затем делает новую строку. Вероятно, это то, что вы хотите использовать вместо say
.
Методы .gist
и .Str
- это два разных способа превращения объекта в Str
. Метод .gist
обеспечивает удобное для человека представление данных, которые передают его структуру. Если вы .gist
сложный Match
с кучей захватов, он будет показывать их (и использовать отступ для отображения дерева соответствий). Напротив, .Str
не пытается воспроизвести структуру; на объекте Match
, он просто дает текст, который покрывает Match
.
Итак, суммируем различия между языками Perl 5 и Perl 6, которые вы используете:
- Захваты - это
Match
объекты, а не строки (именно поэтому грамматики могут генерировать дерево синтаксического анализа) - Функция
say
в Perl 6 вызывает.gist
- Функция
put
в Perl 6 в основном эквивалентна функцииsay
в Perl 5
Наконец, квадратные кавычки были выбраны из-за того, что они относительно редки и, следовательно, вряд ли будут в каких-либо пользовательских данных и поэтому позволяют представить захваченные данные, которые вряд ли понадобятся в каких-либо escape-последовательностях. Это обеспечивает более легко читаемый обзор рассматриваемого Match
, который является целью .gist
.