If you are absolutely positively sure and certain that there will be no ';;' anywhere inside the fields, then you can use split to good effect use Modern::Perl;
use Text::CSV;
my $csv = Text::CSV->new( { eol => "\n" } )
or die "Cannot use CSV: " . Text::CSV->error_diag();
open my $fh, '>', './new.csv' or die "new.csv: $!";
while (<DATA>) {
chomp;
$csv->print( $fh, [ split /;;/ ] );
}
close $fh or die "new.csv: $!";
__DATA__
abd;;sasa;;trre,dsa;;sdas;;dsss
123;;456,789;;include some spaces and ; once;;55555+;;abc
Output:abd,sasa,"trre,dsa",sdas,dsss
123,"456,789","include some spaces and ; once",55555+,abc
CountZero A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James My blog: Imperial Deltronics
|