use Path::Class qw(file); use Text::CSV; my $input = \*STDIN; my $output = \*STDOUT; # ... or use open() to open file handles my $csv = Text::CSV->new({allow_whitespace => 1, eol => "\n"}); while (my $row = $csv->getline($input)) { $row->[4] = file($row->[4])->basename; pop @$row until $row->[-1]; $csv->print($output, $row); }