in reply to Prototyping - is it necessary?

try leaving the parens off the sub definition as it doesn't seem like you need them. so use:

sub test_sub {
   #code
}

instead of:

sub test_sub() {
   #code
}