Hello, I am looking for a way to parse a file TXT with the underlying format. A office colleague praise for Ruby he uses to parse the file in " oneline" .

File.readlines("/home/user/objet_zone.don").reject{|l|}.map{|l|lf=l.st +rip;(lf.size> 0 && lf[0..1]!="--") ? lf : nil}.compact.inject([]){|ar +y,l|ary.last << l if (l=~/^[^=]+=>\s*debut/ && ary<<[])..(l=~/^[^=]+= +>\s*fin/);ary}.map{|ary|ary[1..-2].map{|e|e.split('=>').map{|f|f.stri +p.gsub('"','')}}.to_h}

the aim is to transform in hash every object (array of hash in his maner) for using them in the rest of the script.

he teaches me that the interval cames from Perl but i can't afford to traduce it ...

if (l=~/^[^=]+=>\s*debut/ && ary<<[])..(l=~/^[^=]+=>\s*fin/)

could you help me to proove him Perl is as efficient as Ruby ? (even if it is not a "oneline")

Thanks in advance

example of the file TXT :

objet => debut
index => 1
a => "premiere valeur"
...
z => "dernier mot"
objet => fin
...
objet => debut
index => 77
a => "autre valeur"
...
z => "aurai-je le dernier mot ?"
objet => fin

sorry for my poor english.


In reply to RESOLVED - parse a file TXT similar to XML by x-lours

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.