in reply to effects of ampersand and non ampersand when referencing a sub name
Using a coderef at all bypasses prototypes. (As does calling a sub as a method.)
If you need to check the number of arguments passed to a sub, do it in the sub! Prototypes are just to help the Perl parser parse argument lists more sanely.
sub execute { @_==3 or croak "execute() needs three arguments!!"; ...; }
|
|---|