This isn't really a Perl question. If, and what kind of database you need, depends on the problem you want to solve,
and it's a largely language independent problem. If for instance I need to program a flight reserve system, I get
lots of records that need to be stored, retrieved quickly,
summaries need to be made, and it needs to be backupped
and be able to restored quickly. Then you need a relational
database (and a good one, not MySQL). If I just have some
key/value pairs that I want to remember from one invocation
of the program to another, one of the DBM files will do.
If I have some mostly static data, and I'm going to need most of the data each time the program is run, a flat file
will do fine.
So the answer is "it depends on your data". What structure
does it have, is it volatile, how do you want to search it,
how important is it, what's your backup solution, etc, etc.
Answer all these question, and then you can start looking
what database you need.