These sorts of problems are always intensely frustrating and you have my sympathy. While there's nothing obviously wrong (to me) in your well-written post I can only offer these 3 possibilities. Hopefully one will be of some help.
Firstly, I can't help but notice that your 3 client environments change 3 things each time between them: perl version, DBI version and DBD::mysql version. This is confounding so it would be great to try to fix it and only change one thing. Probably the easiest is to modify the DBI and DBD::mysql versions in your perlbrew install to be the same as the currently working environment. If you can connect with that then it's a module version issue and you can look into the changelogs, etc. If you can't then it's either a perl version issue (unlikely but not impossible) or an environment issue.
Secondly, and orthogonally, there is a DBD::MariaDB module available. It is for the most part interchangeable with DBD::mysql but since you say you have a MariaDB server, it's probably worth investigating in case it makes the problem vanish in a simple way.
Finally, consider the possibility that the problem might be related to something on the server side. I'm sure you are aware that MariaDB auth may be restricted to certain client IP addresses and there could be a myriad of other reasons why even with seemingly identical connection profiles the server rejects some connection attempts. Try connecting using a completely different client if you can to see if it is some environmental concern which is the underlying cause. It would also help to have a word with the DBA about this as they should be able to say at once if they are using some particular restriction which might explain what you are seeing.
Good luck with your investigations.