Are your filesystem permissions set properly to allow user 'apache' to write to the filesystem?
- First test, make user apache a member of the group which owns local directory.
- Second, make group permissions ('chmod g+x .') of local directory include x.
- Make sure file permissions for group of file in question include 'r' ('chmod g+r filename')
mod_perl should not require changes. It's most likely your permissions, second most likely your Apache httpd.conf setup. Third most likely is that you've mixed up http-accessed web directories from DocumentRoot with /-referenced UNIX local directories.