use 5.20.0;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new ({
binary => 1,
auto_diag => 1,
quote_space => 0,
keep_meta_info => 11,
});
open my $io, "<", "test.csv";
open my $oh, ">", "out.csv";
my @row = ("") x 8; # The CSV has 8 columns
$csv->bind_columns (\(@row));
while ($csv->getline ($io)) {
$row[$_] =~ tr{,}{-} for grep { $csv->is_quoted ($_) } 0..$#row;
$csv->say ($oh, \@row);
}
####
$ time perl test.pl
20.120u 0.156s 0:20.48 98.9% 0+0k 13888+214656io 0pf+0w
####
use 5.20.0;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new ({
binary => 1,
auto_diag => 1,
eol => "\n",
});
open my $io, "<", "test.csv";
open my $oh, ">", "out.csv";
my @row = ("") x 8;
$csv->bind_columns (\(@row));
while ($csv->getline ($io)) {
$row[1] =~ tr{,}{-};
$csv->print ($oh, \@row);
}
####
$ time perl test2.pl
5.564u 0.144s 0:05.90 96.6% 0+0k 16+214656io 0pf+0w