in reply to P::RD and grammar

I've never used it before, but it looks fun! I think you should start small, then build up your grammar. I got rid of the square brackets around you month names. They are for regex character classes, if I understand this module correctly:
my $grammar = q{ transaction: date date: /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\ +s+\d{1,2},/ }; # My output... # $VAR1 = 'Oct 31,';

UPDATE: and a little more readable:

my $grammar = q{ transaction: date date: /( (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|D +ec) # Month \s+ \d{1,2} , \s+ \d{4} + # Day, Year ) \s+ (\d{1,2} : \d{1,2}) : \d{1,2} \s+ (A|P)M + # Time \s+ PCKLog \s+ log /x };