The above responses will "fix" the error. However, if I were you, I would reconsider why you are passing a glob into ReadParse, as opposed to reference. From the simple example shown, you may even consider simply having ReadParse return a hash and take no input. As I rule, I try to avoid global variables, except when necessary (which it is not in the example given).
my(%input) = &ReadParse();
my(%input) = (some_input => 'for the sub');
They say that time changes things, but you actually have to change them yourself.