Apache::PageKit is a good system. It takes HTML::Template and adds a structure for building applications and integration of Apache::Session. However, these days I'm more likely to recommend
OpenInteract. It uses Template Toolkit, and I think it has a more useful translation of the model-view-controller pattern for web applications. It also has more pre-built components which can be handy if you're doing something that requires a user/group model and permissions.
You can read more about the other options in my article. I have to say, I think that Apache::ASP is a really good option for people who like to use an in-line perl, page-centric coding style. Personally, I prefer to use more of a MVC, mini-language style.