It depends on the data you want to store and what you are doing to do with it.
if you are going to have unknown data, then your current method is a bad idea because ~ could appear in there, screwing up the tokens. If you're going to have at least two optional data, it's the same idea (with only one optional data, you can put it as the last token).
For accessing data, one hash table per users would be better, but for finding data, you would need to loop through all the hash tables while with the current method, a good $hfind will do the trick, so even efficiency wise, it depends on what you're going to do.


#mircscripting @ irc.swiftirc.net == the best mIRC help channel