for the lazy :)
http://sourceforge.net/projects/perlbb/
(to OP: the Project->WebSite link of
http://perlbb.sourceforge.net/ doesn't work)
If the only requirement is "no separate database application needed", why not
SQLite or BerkeleyDB or something indexable? How will you provide the desired scalability with just XML files?
You may want to strongly consider supporting multiple databases .. if use
DBI (
DBD::AnyData supports XML), and don't do anything db-specific in your SQL, it will simply be a matter of letting the user specifiy a different DSN in the config -- it might appeal to users to be able to use their existing postgres/oracle/mySQL/SQLServer/whatever database.
Going DBI (as opposed to creating your own stuff that wraps a XML parser/writer module) will also let you, if you choose, leverage an abstract layer like
Class::DBI or
DBIx::Class or others.