in reply to join mutiple files on first column

You have 75% of a shell solution there. All you need to complete a shell solution is to append the grepped values onto a destination file.

On the other hand, if you want a Perl solution, go for a Perl solution. Shelling out constantly is going to be relatively expensive, so instead read the files, once. As you read each file, split it into fields and store a single row as an array. Store that array in a hash keyed by the primary field, creating the entry if it doesn't exist, appending the field values onto the existing array if it does exist.

As Occam said: Entia non sunt multiplicanda praeter necessitatem.