Instead of an array create a hash in which the key is the fname and the value is the hash reference. To get the phone of 'Foo' we could write: $data{Foo}{phone}
- First you can assume fname values are unique.
- Then improve it by checking if the fname is indeed unique and warn if not.
- Further improve it by removing the fname from the internal hashes.
- Further improve by passing the name of the key field (currently fname) as a parameter.
- Bonus: try to deal with the case when there are duplicate values for the key field without just giving an error message.