А что считать фреймворком? Какие цели он должен выполнять?
Если что-то уровня RoR/django, то под перл, увы, такого нет. Есть монструозный каталист, тянущий за собой вагон зависимостей, есть его последователь Mojo/Mojolicious (год назад был практически недокументирован и местами глючен).
Тем не менее, есть вполне себе самостоятельные пакеты для работы с отдельными буквами боянной аббревиатуры MVC. В частности:
DBIx::Class — для БД,
Template Toolkit — для шаблонизации.
Контроллеры можно написать тысячей разных способов, как руками, так и с использованием бешеной CGI.
Под mod_perl2, кстати, поинтереснее становится. См. модули, начинающиеся с Apache:: и Apache2::.
Например, посмотреть в сторону Apache2::Controller. Ну, как «посмотреть». Посмотреть, понять, что они хотели этим сказать, и за полдня сделать то же самое.
С обработкой форм (валидация, сохранение), помню, жопа была. Выбор невелик, а те, что поприличнее, опять же волочили за собой вагон зависимостей.
Правда, при попытке соединить все воедино может заболеть голова.
У меня в свое время закончилось тем, что я выкинул все нафиг и, в основном, использовал велосипеды.
В частности, сделал простейшую обертку над SQL::Abstract, соединение с БД держал Apache::DBI, сессиями занимался Apache2::Session с пробросом в Apache2::Session::Memcached, шаблонизатором был TT, а диалогом с пользователем занимался самописный класс на основе Apache2::Request, созданный по мотивам Apache2::Controller.
Кстати, CMS Movable type вроде жжот напалмом. Детально полапать его мне, увы, не удалось, но беглый просмотр сделал глазу приятно. Оттуда можно таскать идеи.
PS. извините, в точных названиях классов мог облажаться.