$ 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"