This is the error message I'm getting, with perl 5.8.8 on linux:
RECORD
#input_id 1210758171x001_0013
#output_id
#input_type PTC
#output_type PTC
#addkey
#source_id 01
#filename TTFILE01-0001-20080101000000
F ptc_record_length 00B6
F ptc_record_type
B firstBlock
F ptc_charging_end_time 20080604093721
F ptc_called_msrn_ton FF
.
F ptc_term_mcz_duration 060000
F ptc_term_mcz_change_direction
.
Warning (line 27): Found an error marker (<error>) after an uncond
+itional
<error>
(Hint: An unconditional <error> always causes the prod
+uction
containing it to immediately fail. An error mar
+ker that
follows an <error> will never be reached. Did y
+ou mean
to use <error?> instead?)
ERROR (line 1): Invalid startOfRecord: Was expecting RECORDSTAR
+T
Bad input!
So it might be a problem in connection with ActivePerl or your particular installation. Just a wild guess
When I used RecDescent the last time I put only function calls into the parser code. The functions I put outside the parser into a different module so that I could get meaningful line numbers from the error messages.