ディレクティブ score、変数 $score, $score_return

#!/usr/bin/env perl

use strict;
use Parse::RecDescent;

my $grammar =
q{
    inputs : 'a'  { print "*a1 $score $score_return*\n"; } <score: 1>
           | 'a'  { print "*a2 $score $score_return*\n"; } <score: 2>
           | 'a'  { print "*a3 $score $score_return*\n"; } <score: 3>
};

my $parse = new Parse::RecDescent ($grammar);

while (<>)
{
    defined $parse->inputs($_) or print "Bad text!\n";
}

で、

a
*a1  *
*a2 1 1*
*a3 2 1*
#!/usr/bin/env perl

use strict;
use Parse::RecDescent;

my $grammar =
q{
    inputs : 'a'  { print "*a1 $score $score_return*\n"; } <score: 3>
           | 'a'  { print "*a2 $score $score_return*\n"; } <score: 1>
           | 'a'  { print "*a3 $score $score_return*\n"; } <score: 4>
};

my $parse = new Parse::RecDescent ($grammar);

while (<>)
{
    defined $parse->inputs($_) or print "Bad text!\n";
}

で、

a
*a1  *
*a2 3 1*
*a3 3 1*