AS long as you stick to the text file, there is nothing else than overwriting that file. I suggest to flatten your structure
by taking making new hash keys, consisting of a zero-padded number and the keys of the nested hash. You than use these newly generated keys to create a flat database (like BerkeleyDB). This database has a random acces mode, so you can update and add and delete at will.
in reply to Updating files
For the remainder of the code:
The translation from AoH to flat access is rather simple. Just concatenate the numbers and keys.
"We are not alone"(FZ)