Geez ... the number of non-answers here is not helpful. This could be a problem with your perl script -- does it try to write to /var/log/www/cgi_log -- or with your apache config. The main problem is either your cgi script or the apache server itself is trying to write to /var/log/www/cgi_log but the process does not have permission to write there. Check:
- does your cgi-script write to /var/log/www/cgi_log .. if so, you cannot write there. Work with your apache admin to figure out where you can write (hint -- just write to STDERR and a properly config-ed apache will write to the proper log)
- does your apache conf use /var/log/www/cgi_log as one of its' logs (look for CustomLog, ErrorLog, RewriteLog, etc) .. if so, then check what user your apache process runs as and ensure it has perms to write to /var/log/www/cgi_log or change your log to some place the running apache user can write to
- and if /var/log/www/cgi_log is the *place* ... check its' permission and change them so the apache process user can write to it (I've had situations in the past where some off-line process would erroneously change permission on files it shouldn't have).