Вы пытались заменить эти две строки ...
my $request = CGI->new();
Модуль Apache2 :: Request оборачивает API mod_perl, чтобы "имитировать подпрограммы CGI.pm для анализа параметров запроса" . Поэтому любой код, использующий необработанный $ r, работать не будет, но код, использующий $ request, может.
Но в ответ на ваш более крупный вопрос ответ - нет, нет простого способа запустить код, написанный для mod_perl, вместо CGI. При написании нового кода вы должны либо использовать платформу, либо написать в API PSGI, который затем можно развернуть с использованием CGI, FastCGI или mod_perl без изменения кода.