in reply to Reading CSV Function
Text::CSV_XS' csv function supports most (if not all) of what you want.