Maybe I'm lost because I'm used to American football, but I don't understand the rules that are being used to create the output you are expecting from your four given input files.
Why does this need to be done using perl ? Is this a homework assignment?
For sure it is not homework assignment. From the formation.txt,
the first row: DR. Therefore, it will take the name from DR. txt which is ARBELOA 200
the second row: DC. Therefore, it will take the name from DC. txt which is RAMOS 200
the third row: DC. Therefore, it will take the name from DC. txt which is RAMOS 200, BUT since RAMOS is already exist in the line up, it will be filled by PEPE 190
the fourth row: DL. Therefore, it will take the name from DL. txt which is MARCELO 200
the fifth row: DR. Therefore, it will take the name from DR. txt which is ARBELOA 200, BUT since ARBELOA is already exist in the line up, it will be filled by CARVAJAL 190
the sixth row: DC. Therefore, it will take the name from DC. txt which is RAMOS 200, BUT since RAMOS and PEPE are already exist in the line up, it will be filled by VARANE 180
the seventh row: DC. Therefore, it will take the name from DC. txt which is RAMOS 200, BUT since RAMOS, PEPE and VARANE are already exist in the line up, it will be blank
the eighth row: DL. Therefore, it will take the name from DL. txt which is MARCELO 200, BUT since MARCELO is already exist in the line up, it will be filled by COENTRAO 190
Because I believe PERL is efficient for text processing and I have around 3312 of formation.