That huge project wouldn't happen to be
XINA, would it? ;) I just took
a look at some of your source code and see that you use
a number of different HTML generation styles: functional
CGI.pm, object oriented CGI.pm, here docs, and plain old
strings. I know this is a lot to ask, but why not branch
off a new version that uses a full blown templating
system instead? I recommend
HTML::Template
because it is not too large, fast, and has no non-core
module dependencies.
Note that while you need to take many steps backwards, your
new code will be free of embedded HTML, allowing you to
concentrate on logic only. You might even
be able to completely deprecate
xistlyesheeteditor.cgi, for example, because your
users will instead be able to supply their own (unless
you are holding their hand because they can't write CSS).
Personally, i think XINA is cool, but it could use a
serious re-write. There is a lot of repeated functionality
in every cgi script that should be abstracted into a
module instead (meta data collection, database connection, etc). Also, i notice that you only allow
connections to MySQL and PostreSQL databases. If you instead
allow the user to specify any DBD module, then maybe other
programmers will be willing to port XINA to work with those
databases for you. ;) Keep your code modular and marvel at
the input of others.
For the record, i still love CGI.pm - but i only use it
in conjunction with HTML::Template for any serious
production code that i produce. Once i made the "clean
break" to templates, managing web apps became a lot easier.
(CGI::Application might server XINA well, by
the way.) Best of luck to you and XINA. :)
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)