use 5.18.2;
use Text::CSV;
use Data::Peek;
my $csv = Text::CSV->new ({ sep => ", ", quote => "'", auto_diag => 1 });
while (my $row = $csv->getline (*DATA)) {
DDumper $row;
}
__DATA__
(101, '1997-02-25', 'S1', 31.00, NULL, 0.00, 'this becomes two fields, so no go', 5.11),
(102, '1998-03-26', 'S1', 31.00, NULL, 0.00, 'this will remain one field', 6.11),
####
perl test.pl
[ '(101',
'1997-02-25',
'S1',
'31.00',
'NULL',
'0.00',
'this becomes two fields, so no go',
'5.11),'
]
[ '(102',
'1998-03-26',
'S1',
'31.00',
'NULL',
'0.00',
'this will remain one field',
'6.11),'
]
####
use Text::CSV qw( csv );
use Data::Peek;
my $aoa = csv (in => *DATA, sep => ", ", quo => "'",
on_in => sub { $_[1][0] =~ s/^\(//; $_[1][-1] =~ s/\),?\s*$//; });
DDumper $aoa;
####
[
[ 101,
'1997-02-25',
'S1',
'31.00',
'NULL',
'0.00',
'this becomes two fields, so no go',
'5.11'
],
[ 102,
'1998-03-26',
'S1',
'31.00',
'NULL',
'0.00',
'this will remain one field',
'6.11'
]
]