I have a CSV file (created from a client's Excel database) that may look something like this (CSV files are just Comma Seperated Values - commas as delimiters):

Brentwood,,Y,301,2+2,,1695/mo,11/22/00,Margie,"Margie 310-455-1234, Pager 310-555-9876"

As you can see, the last field in this string actually has commas in it, and therefore it is bounded by quotes ("Margie 310-455-1234, Pager 310-555-9876"). Here is my problem - I want to be able to "intelligently split" this string. In other words, I want to split on the commas UNLESS one of the fields is bounded by quotes, as I have said. But to me, it seems like the effect before the cause - in order to tell if one of the fields is bounded by quotes, we have to seperate the string into these fields, but doing this would require spliting on commas, and BAM, I am back where I started! I thought about this:
my (...) = split(/[^"],/,$string);
But haven't had the chance to test it. What do my fellow monks think about my situation?

Thanks!!
R.Joseph

In reply to A Special Kind Of Split by r.joseph

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.