Quite frankly, what I would do is to grab a copy of SQLite ... a public-domain SQL system that doesn’t use any kind of server ... and import all these files into a database, then use SQL queries to JOIN among the various tables to get the answers that you want. You don’t have to write-a-program to import the data.
Also, if this happens to be a one-off task, consider the ubiquitous spreadsheet ... which will also certainly have the capability to obtain data from a database file and even to perform queries against it. (Or do vlookup() and so-on.)
I’m just suggesting ... look at the target and all of the potential ways of hitting that target. Sure, “writing a Perl program” is one way to do it. Perl can do it effortlessly and other posts on this thread will show you exactly how. But if what you have is a bunch of CSV files, and what you want to get is a result that can be described as joining data between them, then in all likelihood you do not need to “write a program” to do that.