in reply to Reading escaped data from a CSV

Anonymous Monk wrote: Please do not recommend a perl module for this task, as this is just as much about the technique as it is the task.

Well, if you want to get this right, don't forget to include proper handling of newlines in CSV fields (Text::CSV gets this wrong, last I checked). Also, what if the escape is escaped? You'll want to deal with that. And what if you have "quoted commas, don't split".

In other words, that could be a fair amount of "technique" to get right, or you could just use a good module, which is a better "technique". Regular expressions are great, but they tend to be overused.

Cheers,
Ovid

New address of my CGI Course.

Replies are listed 'Best First'.
Re: Re: Reading escaped data from a CSV
by jZed (Prior) on Nov 14, 2003 at 20:51 UTC
    >>Well, if you want to get this right, don't forget to include proper handling of newlines in CSV fields (Text::CSV gets this wrong, last I checked).

    Text::CSV never attempted to or claimed to deal with embedded newlines. Nor is it a maintained module. It was superceded by Text::CSV_XS long ago. Text::CSV_XS (as oppossed to Text::CSV) handles newlines if the flag binary=1 is passed. Modules like DBD::CSV which use Text::CSV_XS set that by default and therefore support embedded newlines by default.

    And, not to nitpick, but I think "wrong" is a bit harsh. There is no standard definition of CSV so there's no standard to be wrong against. But certainly it's more limited in what it can handle, one of the reasons that Text::CSV_XS came into existence.

      Most people consider Microsoft Office compatibility to be enough of a standard that that is what they shoot for.