in reply to Forced to Use Subroutine Prototypes

Are you sure that's the error you got? I can't find any mention of it in perldiag.

No, prototypes are not required. In fact, prototypes are not required on forward-declerations even if the sub has a prototype (although you run the risk of having the prototype silently ignored).

use strict; use warnings; sub test1; sub test2; sub test3($$); test1; test2; # No prototype at this time. test3 'a', 'b'; # Args required by prototype. sub test1 { print "test1\n"; } sub test2($$) { print "test2\n"; } sub test3($$) { print "test3\n"; } test1; test2 'a', 'b'; # Args required by prototype. test3 'a', 'b'; # Args required by prototype.