NPLUS,32,0, NW,41,0,1 NWER,51,"0,1,2",12 #### NPLUS layernumber 32 datatype 0, NW layernumber 41 datatype 0 text 1, NWER layernumber 51 datatype 0 datatype 1 datatype 2 text 12; #### open(my $in, '<', 'Text_File.csv') or die "Cannot open Text_File.csv: $!"; open(my $out, '>', 'mask.spec') or die "Cannot open mask.spec: $!"; while (my $line = <$in>) { #my @fields = split (/(?<="),(?=")/, $line); my @fields = split(/,/, $line); if (@fields == 4) { printf {$out} "%s layernum %s datatype %s,%s", @fields; } elsif (@fields == 5) { printf {$out} "%s layernum %s datatype %s text %s,%s", @fields; } }