While that kind of code is clever and fits a single case, it doesn't really explain what it's doing, and modifies the original data.

Your choices of landmarks to match seem unlikely as the key determiners for the desired information. What if other lines are included (now or in the future) with similar formats that have leading spaces or equal signs? I would more likely guess that the keywords and string-delimited labels are the important parts to watch.

Literate code helps the maintenance programmer (or yourself) figure out how it works later.

while (<DATA>) { next if not /^ \s* vsan \s+ (\d+) \s+ # $1 name \s+ ( \" .*? \" ) # $2 $ /x; print "vsan $1 = $2\n"; }
As you and your team of maintainers get more familiar with regular expressions, you may tighten that up with less spacing and less commentary, but the pattern is specific and includes the obvious visual landmarks which are important for the programmer to understand.

--
[ e d @ h a l l e y . c c ]


In reply to Re^3: Prove me wrong,...please (yet more regex blues). by halley
in thread Prove me wrong,...please (yet more regex blues). by blackadder

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.