There's a misconception about efficiency and files.
It's not so bad to flush your data once and /play it, because there is only two times disk access:
once when flushing the data, and once when doing /play, because /play buffers the entire file into memory and then plays from memory. That's the reason why you can delete a file during a /play, as the contents are already buffered.
What is inefficient is if you have a script that loops through a file with $read and does multiple times disk access, because for each $read, it has to open/read/close the file. Or if you have a script like in on text, that /writes something to a file with each thing said (like a log) . Those are very inefficient.
So if you want to play the data in your hash table, save it to a file (you can choose to save it without the items, just the data with the -n flag, or in ini format etc.) and then play it to wherever you want, don't worry about it. Don't forget about the file handling commands and /filter. File handling commands are efficient because they keep the file open during your operations (like writing multiple lines to it) and then at the end you close it. Very different from using /write, which opens/writes/closes the file with each call. /filter is also very efficient, and acts similar to the file handling commands, in that it doesn't open/close the file continuously. It opens it once, does all the filtering, then closes it.