Hello Monks,
Long time no see! Recently I have to parse a file and export to another format. the original file is like this:
I took this weekend to learn P::RD, and seems a little bit to understand it. but when I tried some snippet to run, it's hard to succeed as I image:Y 034309201607258 1 #Y means header Q 02751VACANT / CLOSE #comment G .... # inner head ... ... ... T RCRC 0810010 T RDRD 0810010 A 22OP A 13O A 12O P 3472CHSK00010014 #P means inner trailer Z 034309201607258 #Z means trailer
why parser1 is failed? and in order to learn P::RD, Could anyone tell me if some module parsing files( like xml or html etc> on cpan make use of P:RD? Thanksuse Parse::RecDescent; use IO::All; my $text = io("xxx.DAT")->slurp; # Create and compile the source file $parser1 = Parse::RecDescent->new(q( startrule : HeadRule /.+/ms TrailerRule HeadRule : /^Y.+$/m TrailerRule: /^Z.+$/m )); $parser2 = Parse::RecDescent->new(q( startrule : HeadRule HeadRule : /^Y.+^Z.+$/ms )); # Test it print "Valid data\n" if $parser1->startrule($text); #no! print "Valid data\n" if $parser2->startrule($text); #yes
I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction
In reply to question when learning P::RD? by xiaoyafeng
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |