Catalyst is very flexible. It defaults to using tt2 for a template system, but it will let you use others.
Also it will let you move your data into any database system, or you can keep them in the csv-file. If you keep it in the csv-file you will still interface it as a database, using DBD::CSV. SQLite is often used while developing because it's lightweight and convenient, and the catalyst examples tend to use it. You can use any old database you want to.
The Catalyst book and online examples will show you how to get your project done with very litle code, and with very much flexibility for further work.