my $grammar = <<'END_OF_GRAMMAR'; #Start up action(executed in parser namespace): { use 5.012; #enable say() use Data::Dumper; } employee_info: 'employee' name id { say Dumper(\@item); } #Action name: m{ \S+ }xms id: m{ \d+ }xms END_OF_GRAMMAR my $text = "employee Joe 10"; my $parser = Parse::RecDescent->new($grammar) or die "Bad grammar!\n"; defined $parser->employee_info($text) or die "Text doesn't match"; --output:-- $VAR1 = [ 'employee_info', 'employee', 'Joe', '10' ];