1. I guess that was school.
2. I would have liked it to just delete the value. But I was having problems and just tried returning the hash ref of each branch.
3. I just wanted to assign the hash structure of value into hashdata so I can use the %HashData normally in the main program. I guess I can change the name.
4. Do you mean i should use shift?