Может перейти на модуль Error?

Использовать expiration для каждого поля, так что наименьшее из этих
чисел будет использоваться для установки expiration для всей страницы.
На одной странице могут использоваться несколько объектов.
Установка expiration самостоятельно в акции и установка в конфиге для
каждой акции конкретно.

 Сделать перегрузку
error

Params::Validate

Сделать чтобы независимо от названия скрипта-файла при его сохранении
выдавалось имя с расширением .html

Сделать при регистрации возомжность удаления записи ил таблицы user
если этого пользователя нет в остальных (client,manager)

Сделать PerlTransHandler и запуск акции TRANS у каждого объекта

Процедуры для генерации и парсинга закодированных CGI
параметров. Перед вызовом темплейта все необходимые линки с такими
параметрами кодируются и кладутся в DOM, а затем напрямую используются
в темплейтах

Написать модуль для чтения и записи xml (а возможно и xslt) через dom
модуль URI и Apache::URI

install как в Alzabo

Crypt::CBC Crypt::*
Digest::SHA1
mod_session
Search::InvertedIndex and DBIx::FullTextSearch
mod_proxy
Apache::Throttle
Berkeley DB
Devel::DProf
Message Authentication Code (MAC)

Resources that are used frequently within the scope of a request, such
as database handles and session objects, were cached in mod_perl's
$r->pnotes() until the end of the request.

Глянуть всетаки на Template Toolkit

MD5 для sessionID
Возможность установки sessionID не в куках, а в URL

Надо уметь для некоторыз акций и объектов сказать, что они кешируемые,
чаще всего это не пользовательские объекты - как спико продукции и тп,
обновляемые редко. Например для списка новостей LastModifed дата будет
очевидно дата последней новости. Хотя тут возникают проблемы если
какая-то из новостей удалена или изменилась (напирмер исправили
синтаксическую ошибку), может быть об этом можно не беспокоиться а
может в базе прийдется ввести специальную колонку для хранения таких
дат (дат последнего измнения)
Apache::File

Прокешировать возможно объект работы с базой пользователей

!!! Узнать и использовать в uri::current а может и в остальных номер порта
!! Установить в куке домейн из uri::base->domain() || uri::home

Сделать при регистрации для логина достыпными только символы
[A-Za-z0-9_], очевидно поле login таблицы user должо иметь свой тип,
производный от string - login

Модули для авторизации (cookie/SSL/Basic)

Сделать ява-скрипты для проверки require полей

Ворзврат в тотже темплейт при не соблюдении REQUIRE и UNIQUE полей

Поддержка language через стандартные средства apache/http

Создание виртуальный путей типа http://hostname/object/action и
тп. Определние этих путей программным способом

Шифрование web запросов, то есть вместо action=.. object= сделать
ASDLKJLASDOI12312. Наверное это надо сделать модулем

Возможность запуска object->action изнутри, например при неправильном
логине

2 действия одновременно, например можно просматривать продукт и приэтом раотать
с корзиной которая а этом-же окошке, после любого нажатия на ссылке в
корзине, меняется только она, основная страница остается тойже

сделать page=? главным методом листания страниц вмесето start=?count=

сделать загрузку hasPer_ и в модуле пермиссий и возможнос AUTH_
ACTION_ через AUTOLOAD

?создание тарнзакций типа sql::transaction

преобразование при записи в базе и при вытаскивании аттрибутов
date/boolean/enum/ и любые другие свои

Набор доступов - это роль, каждому пользователю можно давать свою роль
(наверное группа пользователей) возможность устанавливать временно
роль внутри программы

Возможность делать визарды

В конфиге, для пермиссий указывать статус, который будет возарвщаться
через noauth в случае, если этого сдоутпа нет (а может лучше
возвращать неудавшийся доступ?)


====================================
Сделано:
====================================

? Редирект, локальный редирект
? возможность выводить ошибку в томже темлпейте что и акцию

через main.objectURI можно выбирать какой объект запускать в зависимости от пути

Tables::init/deinit сделать на очищяющими %TABLES я очищающзими внутренние данные самих таблиц

Раздельная аутентификация для разных объектов

Сделать что-бы при рестарте апача не терялась информация о susystems

в SQL вместо where принимаются хеши, массивы и просто строки, если в
хешрефе ключ равен '-', то его значение - ссылка на массив, который
будет использоваться в bind параметрах при запросе, если значение
элемента - хеш,значит ключ хеша является логикой (для where - or/and).
Вложенность хешей и массивов - любая.

Отливаливание fatal ошибок не через eval { die }

сделать getListDOM также как и getList - через fetch

Кеширование и релоад пр иизменение конфига

Кеширование и возможно релоад темплейтов

parser::xml/xslt должны делать new при первом ообращении к ним, то
есть к этим парсерам надо обращаться только через процедуры. Применить
технологию и для остальных вещей

====================================
Советы:
====================================

Применить parser::* технологию и для остальных вещей


