&commaToPipeDelimiter($maxFile, $pipeMaxFile); sort_file({t => '|', k => ['31n', '1n', '2n'], I => $pipeMaxFile, o => $sortedMaxFile}); sub commaToPipeDelimiter{ my ($file, $pfile) = @_; my $csv = Text::CSV->new({binary => 1, decode_utf8 => 1, auto_diag => 1, allow_loose_quotes => 1}); open(my $data, '<:encoding(utf8)', $file) or die "Could not open '$file' $!\n"; open(W, ">".$pfile) || die "Could not open $pfile $!\n"; while(my $line = <$data>){ chomp $line; if($csv->parse($line)){ my @fields = $csv->fields(); print W join("|",@fields),"\n"; } else{ warn "Line could not be parsed: $!\n"; } }