$ cat test.pl
use 5.20.0;
use warnings;
use Text::CSV_XS "csv";
csv (in => "test.csv", blank_is_undef => 1, on_in => sub {
splice @{$_[1]}, 2, 2, $_[1][2] // $_[1][3]; });
$ cat test.csv
1,2,,,5,6
1,2,3,,5,6
1,2,,4,5,6
1,2,3,4,5,6
$ perl test.pl
1,2,,5,6
1,2,3,5,6
1,2,4,5,6
1,2,3,5,6
####
$ cat test.pl
use 5.20.0;
use warnings;
use Text::CSV_XS "csv";
csv (quote_always => 1, in => csv (in => "test.csv", blank_is_undef => 1,
on_in => sub { splice @{$_[1]}, 2, 2, $_[1][2] // $_[1][3]; }));
$ perl test.pl
"1","2",,"5","6"
"1","2","3","5","6"
"1","2","4","5","6"
"1","2","3","5","6"
####
$ perl -MText::CSV_XS=csv -e'csv (in => "test.csv", blank_is_undef => 1, quote_always => 1, on_in => sub { splice @{$_[1]}, 2, 2, $_[1][2] // $_[1][3]; });'
"1","2",,"5","6"
"1","2","3","5","6"
"1","2","4","5","6"
"1","2","3","5","6"