in reply to Text::CSV_XS failed to combine

From the docs:

This module is based upon a working definition of CSV format which may not be the most general.
  1. Allowable characters within a CSV field include 0x09 (tab) and the inclusive range of 0x20 (space) through 0x7E (tilde). In binary mode all characters are accepted, at least in quoted fields:
  2. A field within CSV may be surrounded by double-quotes. (The quote char)
  3. A field within CSV must be surrounded by double-quotes to contain a comma. (The separator char)
  4. A field within CSV must be surrounded by double-quotes to contain an embedded double-quote, represented by a pair of consecutive double-quotes. In binary mode you may additionally use the sequence "0 for representation of a NUL byte.
  5. A CSV string may be terminated by 0x0A (line feed) or by 0x0D,0x0A (carriage return, line feed).

But if you do this, it works:

my $csv = Text::CSV_XS->new ({binary=>1});