$ 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