Написал fascgi perl программу. Ну всё по howto. Вопрос возник на счёт переменных имеющих отношение к конкретному запросу. Где их, спрашивается, хранить. Им быть our по отношению к модулю никак нельзя (он же разные запросы отрабатывает). Я их сразу после получения запроса local делаю (из-за чего no strict vars) и дальше до возврата из функции всё отрабатывается, генерируется ответ. Может как-то по-другому можно?
И с шаблонами тоже (HTML::Template). Шаблоны при загрузке программы все считываются в переменные. Потом через Storable делается dclone для переменной с шаблоном, шаблон модифицируется и отдаётся в ответ, потом уничтожается. Может я опять как-то нетрадиционно всё делаю? Но всяко лучше, чем шаблон подгружать и создавать заново во время запроса.
Вообще хотелось бы что-то типа «сессий». Постоянного набора переменных живущих в сеансе работы пользователя, между разными запросами. Как сделать? Только не надо mysql вспоминать как это делает на пыхэхэ... Во-первых без всяких SQL, да и даже без BerkeleyDB. Дурдом это. Да и пользователей там не over9000000, и данных не много. Можно в переменных. Если потом приспичит можно же через tie с БД на диске увязать? Как делают, нормально, без пыхэпэ и SQL?
Про шаблоны тоже вопрос. HTML::Template безобразен до ужаса. Вообще тут php (не)добрым словом вспоминается. Только не в таком как php виде. Скорей макросистемы из Tcl. Чтоб переменные автоподставлялись и ограниченный ряд функций можно было вызвать из шаблона, когда он раскрывается. Но код чтоб в шаблоне не писать как пхп-программисты. Есть какие-то библиотеки и т.п.? Вообще хотелось бы некого дуализма в подходе генерации веб-страниц. С одной стороны как шаблона, с другой как объекта меняемыми свойствами и методами получения HTML.
Ещё об организации веб-приложения в целом. Хотелось бы как-то упорядочить всё, нужна какая-то методика, как это делать. Не знаю. Хотя бы всё в ООП завернуть, чтоб были классы страниц например, которые уже на относительно высоком (не уровня полей шаблона) берут данные, пропускают их через шаблон, отдают HTML или что там. Хоть почитать как это делается. Чтоб не говнокодить как на пхп. Опять же не знаю. Но без тяжёлых фреймворков типа django и т.п. --> в них ногу сломишь, в них масса своих проблем, и они вобщем-то на другие задачи расчитаны. А мне высокореактивное и надёжное приложение на выходе нужно, пусть и без лишних свистелок и колокольчиков.
Ещё заметил, это жутко неудобно через CGI::Simple вручную cookies разбирать и потом ставить, вручную же парсить параметры запроса и т.п. Напрашивается опять же более высокоуровневая ООП-прослойка. С умением сериализовать объекты в куки и т.п. Кстати, CGI без Simple в fastcgi режиме нифига не работает, ерроры даёт, память куда-то девается. Опять же не знаю как это делается. Я вообще веб тольком никогда не программировал. Только GUI немного и системный уровень.