Since the _form_ of the connect() looks good to me (but not a DBD::CSV user) could there be a problem with the referenced directory? Does it exist? Do you have write/create privileges therein, while running from mod_perl? Something to look for until the Coder Super Valiant's arrive.
The same thought hit me about halfway through troubleshooting this. Yep the user apache runs as does have read and write permissions on the directory. The directory exists as well.