PDA-based parsing engine in Perl