http://www.perlmonks.org?node_id=32597

Limo has asked for the wisdom of the Perl Monks concerning the following question:

I have a program that will take, amongst other things, a column header as input and return data from just that field(s). Where I want to go with this is:
<open FILE A> #I can do this <read data in column "X" (or "x", "y", "z")> #I can do this <return a subset of data> #I can do this <open FILE B> #I begin to lose it here. <find all matching strings from previous subset> <take as argument column labels> <return data associated with "subset" and "column data"> <create FILE C> <store data using new column labels>
Syntax should be:
merge [ FILE A, $field, FILE B, $field ]
In other words, lets say I have 2 files. File 1 has columns:
full_name rank serial number
File 2 has columns:
last_name address phone number
I want to take as input "full_name" (or whatever column I specify) from File 1, create a subset of data from the column "full_name", search File 2 for any matches, and return corresponding data from the column "address" and/or "phone number", depending on what I specified at the beginning. Write the results to <STDOUT> , labeling the new columns:
new_name current_address current_phone
So, for instance, I want to create a report that tells me the address and phone number of everyone named "Joe", regardless of last name. I suspect that I have to use references of some sort, but as I've been programming Perl for about a month, read about references, but haven't worked with them yet.. Thanks in advance for any light you all can shed on this one.