use strict; use warnings; use Parse::RecDescent; use File::Slurp; my $grammar = 'startrule: ( "a" | "aa" ) "a"'; my $parser = Parse::RecDescent->new($grammar); my $text = read_file('input.txt'); write_file('output.txt', $parser->startrule($text), "\n");