Actually I think Text::CSV
and the others only work with single character separators.
The char used for separating fields, by default a comma. (,). Limited to a single-byte character, usually in the range from 0x20 (space) to 0x7e (tilde).
The separation character can not be equal to the quote character. The separation character can not be equal to the escape character.
If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)