好的,我正在學習perl6,我正在嘗試做一些非常簡單的事情:使用語法根據操作對象更改匹配的文本。但是我失敗了,我不知道爲什麼。請原諒我這樣簡單的問題。我不在技術或編程行業。所以,請耐心等待,好嗎?perl6要替換的語法
我想將「jan」更改爲01,將「feb」更改爲02;那麼簡單:
grammar month {
regex TOP { (\s* <mon> \s*)+ }
proto regex mon {*}
regex mon:sym<jan> { <sym> }
regex mon:sym<feb> { <sym> }
}
class monAct {
method TOP ($/) {
make $<mon>.made;
}
method mon:sym<jan> ($/) { make "01"; };
method mon:sym<feb> ($/) { make "02"; };
}
my $m = month.parse("jan feb jan feb", actions => monAct.new);
say $m.made; # it says Nil instead of "01 02 01 02" that I want;
那麼,我在這裏做錯了什麼?謝謝。
請注意你的行動是無狀態的,你可以通過對象類型'monAct',而不是實例'monAct.new'到'.parse ' – Christoph