.... in addition to what
BrowserUk said about shared variables..... remember only first level hash keys get shared when you thread share a hash....deeper levels need to be explicitly shared
.... just in case you switch your design to a multi-level hash later..... it would be a hidden bug