in reply to Parsing a CSV file in a unique way

Use Text::CSV_XS and enable its binary mode (which allows newlines and other things inside fields).

use Text::CSV_XS (); my $c = Text::CSV_XS->new( { binary => 1 } ); $c->parse( qq{"abc","def\nghi","jkl"\n} ); print ">>", join( "<<\n>>", $c->fields ), "<<\n";

Update: Twiddled markers around items.