atcroft has the right idea. I had a simlar project and used databases for the following reasons:
- Most databases have built in security, like only allowing certain IP addresses to access only certain usernames, and allow only certain usernames to access and/or change certain portions of the site. That's a lot of stuff that would take forever to write out in Perl but is there and ready for the taking.
- Databases are fast and support multiple concurrenct connections. Files are slow and you can have race conditions if someone is trying to modify a file while it is being read. (Not to mention that you don't need to worry about things like file locks, etc.)
- Not all users are sys admins. Giving FTP access to a directory your scripts live in and telling them to upload files is asking for trouble.
- Regarding the last one, it's pretty easy to create a Tk or GTK based client to connect to the database and do everything transparently.
- Regarding the last one, if you use CSS on your site you can even allow your users to change things at will. You can also have sections formatted using class="" attributes, i.e. user inputs 5 paragraphs, perl splits the paragraphs on m/\n\n/, (remember to s/\r//sg), the CGI script you write outputs them as <p class="sectionFoo">content</p>, and it will look nice because the CSS tells the browser what to do for each class sectionFoo
- It's much easier to understand whats what when your directories aren't crowded by random text files.