in reply to What is the best approach?

I'd recommend CGI::Application (easy but powerful) or Catalyst (even more powerful, but not that easy to learn at first).

If you use a MVC framwork like catalyst it abstracts away the interface layer to the web server, so you can use either mod_perl or FastCGI (or perhaps plain CGI, but that's not recommend).