Because of the way mod_perl handles redirects, the status code is not properly logged. The Apache::RedirectLogFix module works around this bug until mod_perl can deal with this. All you have to do is to enable it in the httpd.conf file.
For example, you will have to use it when doing:
and do some manual header sending, like this:
$r->status(304); $r->send_http_header( );
Available from the mod_perl distribution. See the module manpage for more information.