René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback -
 

$return [Parse::RecDescent]

use strict;
use warnings;

use Parse::RecDescent;

my $grammar = q {

  start    :  numchr(s) 

  numchr   :  number    {$return = "numchr: $item[1]"}
           |  charac    {$return = "numchr: $item[1]"}

  number   : /\d+/      {$return = "number: $item[1]"}

  charac   : /[a-z]+/   {$return = "charac: $item[1]"}
  
};

my $parser=Parse::RecDescent->new($grammar);

print join "\n", @{$parser->start("123one456two")};
numchr: number: 123
numchr: charac: one
numchr: number: 456
numchr: charac: two