Why not try Text::xSV ?
... then you don't have to bother about such things.
From experience, the only thing that can't handle is a CSV export by Excel where a field is extraordinarily large (such that the field is split ... by Excel) ?
In reply to Re: Recommendations for parsing invalid CSV
by Bloodnok
in thread Recommendations for parsing invalid CSV
by markjugg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |