Проблема в том, что используется регулярное выражение - то есть <$dReg>
. Любая форма синтаксиса утверждений, начинающаяся с неидентификатора, не фиксируется. Решение состоит в том, чтобы ввести имя для него. Например, это:
my $s = '16.01.2020 09:18 286';
my $dReg = /^(\d**2)\.(\d**2)\.(\d**4)/;
say $s ~~ /<dreg=$dReg>/;
Результат:
「16.01.2020」
dreg => 「16.01.2020」
0 => 「16」
1 => 「01」
2 => 「2020」
Затем вы получите доступ к снимкам как $<dreg>[0]
. Это связано с тем, что каждый уровень вызова правил подразумевает уровень вложенности в регулярных выражениях Raku. Это то, что позволяет им масштабироваться до полной грамматики.
Обратите внимание, что вполне нормально - и более эффективно - сопоставлять переменную, содержащую регулярное выражение, если это все, что вам нужно сделать sh. В этом случае вы получите снимки напрямую. Например, это:
my $s = '16.01.2020 09:18 286';
my $dReg = /^(\d**2)\.(\d**2)\.(\d**4)/;
say $s ~~ $dReg;
Производит:
「16.01.2020」
0 => 「16」
1 => 「01」
2 => 「2020」