use strict; use warnings; use Parse::RecDescent; my $grammar = q/ startrule: choice "a" choice: "a" "a" | "a" /; my $parser = Parse::RecDescent->new($grammar); while () { chomp($_); print defined($parser->startrule($_)) ? "Good!\n" : "Bad!\n"; } __DATA__ a a a a a