in reply to Re: Re: Writing a CSV Parser/Printer
in thread Writing a CSV Parser/Printer

You have to provide us with line numbers. This can't be done on perlmonks. You can get them with:

perl -pe '$_="$.: $_"' your_input > your_output
I'm not sure how your desired output should look like. Maybe this will help you. It uses RegEx:

use strict; use warnings; while (<DATA>) { my (@fields)= split /, /; foreach (@fields) { if (s/^"((?:[^"\\]|\\.)*)"$/$1/) { #correct tr/\\//d; # No more \ print "$_\n"; } } } __END__ "Perlmonks", "", "excellent ;)" "csv", "csv\"xxx", "trall\ala"
Short explanation for the RegEx:


matches your field's quotechar at the start of the field
will "remember" what was matched inside the quotes
This will match anything in place of the ... and tells the parser that it may apear as often as possible. Even zero times
will match any character but " and \
is an alternative. Either the left or the right part has to match
Will match any "escaped" character
again your quotechar but now at the end