My boss asked me recently why we are using Perl DBI module to access our MySQL database. He asked if there was a specific reason why we have to go through an 'interface' to access our database instead of simply using the MySQL client.
I gave him the following answers but not sure if there are more:
Code is cleaner to look at.
DBI prevents SQL injection.
If we need to switch to another database, we simply need to change the module that we are currently using.