in reply to What is the best approach?

I would start with an existing Content Management System. For instance, consider Drupal. Maybe it's not Perl, but the moment you download it you'll have more features than you'll ever be able to implement if you start from scratch.