in reply to addy book entries..

I would suggest using a database rather than a text file. It will be much faster and more manageable as this grows.

If you are unable to switch this to a database, you still have a very workable alternative. Since you are using formats to print the data to the file, it should be relatively easy for you to convert it into a comma separated file. Then you can use Text::CSV to manipulate CSV fields. You can then read in the file in update mode, change the appropriate data and write it back out.

Better yet, if you cannot use a database, switch it to a CSV file and use DBD::CSV to execute SQL statements against a CSV file. Very handy. Then, if you switch it to a database later on, you should have minimal changes to the code.

Cheers,
Ovid