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).
#get input
my(%input) = &ReadParse();
## OR
my(%input) = (some_input => 'for the sub');
&ReadParse(\%input);
They say that time changes things, but you actually have to change them yourself.
Andy Warhol