xiaoyafeng has asked for the wisdom of the Perl Monks concerning the following question:
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: question when learning P::RD?
by duelafn (Parson) on Aug 28, 2016 at 17:26 UTC | |
|
Re: question when learning P::RD?
by Laurent_R (Canon) on Aug 28, 2016 at 10:03 UTC | |
by xiaoyafeng (Deacon) on Aug 28, 2016 at 12:30 UTC | |
|
Re: question when learning P::RD?
by ikegami (Patriarch) on Aug 29, 2016 at 15:08 UTC |