I'm not sure that I totally understand what you're trying to do. It kind of sounds like you're merging multiple lists (from different files) and then wanting to do multiple column sorting of the data. Assuming that's correct, here's how I personally would approach the problem.
First, read in each file and put the data into a multidimensional array (AoA). After that, you could use something like Data::Table sort by the second column (numerically ascending) and then by the first column (numerically ascending). Once you have it sorted, just print it out to the new file.