ルールに変数

#!/usr/bin/env perl

use strict;
use Parse::RecDescent;
use Data::Dumper;

my $grammar =
q{
    inputs : "$::x" { print Data::Dumper::Dumper($item[1]); }
};

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

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

で、

foo
$VAR1 = '';
foo
Bad text!
bar
$VAR1 = 'bar';