http://www.perlmonks.org?node_id=1041177


in reply to Re^4: Text to CSV with user input comma
in thread Text to CSV with user input comma

So you are reading from a file, split on comma, then write it into another file. I would expect that there are no commas in the data you are writing to the new file as all commas are gone due to the splitting.

Probably some example would be useful like an input line and the corresponding output line that has double quotes in front of every word.

  • Comment on Re^5: Text to CSV with user input comma

Replies are listed 'Best First'.
Re^6: Text to CSV with user input comma
by shushant (Novice) on Jun 28, 2013 at 08:37 UTC
    yes pretty much , but what I have done is replaced the commas of text file to a delimiter as ;; , so that i can split it using ;; , and even if there is a comma in file it would not affect it

    input looks like 50;; C,nt ;; ;;8;; 1;; ds;; 1;; a;; 1;; 0;; 0;; ;; ;; ;; output looks like " 50"," C ,nt "," ",8," 1","ds","1"," Va"," 1"," 0"," 0"," "," "," " and I just want these " " to get omitted

     push @rows, [ split m{ ;; }msx, $line ]; I have done this in the code

      Well, the double quotes are being inserted to be able to distinguish between the comma as a field separator and the comma within the fields, eg " C ,nt ". If you write the data to file without them, then you lose this ability.

      If that is really what you desire, then something like print $out_fh join ",", @$row; might work better for you than using Text::CSV. However, I cannot really imagine why this would be useful...

      UPDATE: ...or use

      $csv = Text::CSV->new ({ quote_char => undef });