A very short list of things I changed to port my app from mod_perl1 to mod_perl2. I didn't use any of the mod_perl2 funkyness but I did stick to Apache::Request (or Apache2::Request in this case).
use Apache2::Const qw(FORBIDDEN NOT_FOUND OK);exports explicitly into namespace.
Apache2::RequestIO qw(print);to allow 'print' in your code.
$r->send_http_headerbut use
$r->rflushto force sending headers.
$req->connection->get_remote_hostinstead of
$req->get_remote_host
$r->header_out->('Set-Cookie' => $cookie);use
$r->err_headers_out->add('Set-Cookie' => $cookie);
Apache2::Upload.