#! /usr/bin/perl -w use Parse::RecDescent; $RD_TRACE=1; my $parse = Parse::RecDescent->new(do{local$/;}); while (<>) { use Data::Dumper 'Dumper'; print Dumper [ $parse->line($_) ]; } __DATA__ line: block | call* block: call: "foo"