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.