FYI, $text (remaining unmatched text) cannot be used as a start-up action to preprocess text before parsing:
Global symbol "$text" requires explicit package name at ./pt2hum line 58.
Execution of ./pt2hum aborted due to compilation errors.
my $g2 = <<EOG;
{ ##Alter separation character
$text =~ tr/_/ /; }
foo: /\w+/
EOG
my $parser = Parse::RecDescent->new($g2)
or die "bad grammar\n";
Colin
