##
s{
\G(
[^",]+
|
"(.*?)"
)(,(?=\S)|$)
}{
if( ! $2 ) {
$1.$3;
} else {
my $f= $2;
$f =~ s/"/""/g;
'"'.$f.'"'.$2;
}
}gx;
##
##
s{
\G(
[^",]+
|
"((?:
[^"]+
| ""
| "[^",][^"]*"
))*"
)(,|$)
}{
if( ! $2 ) {
$1.$3;
} else {
my $f= $2;
$f =~ s/"/""/g;
'"'.$f.'"'.$2;
}
}gx;