Prototypes in Perl do not do the same thing as prototypes in C/C++ (mind you, that's an area that is mis-understood as well). In Perl they force the
context of the arguments, not the number and type. This is the core of most misunderstandings about prototypes.
Report takes one or two scalarsIs better written as
Report takes one or two arguments in scalar context
Personally I find them useful for reference arguments, for example
mysub(\@\%). This will generate a
compile-time error if the wrong type is passed. Otherwise you have to use
ref to check, and the best you can do is report a
run-time error.
Their main drawback is that they are so easily circumvented, for example using OO method calls, or prefixing the call with &.
Finally, for the OP, despite all the bad news about prototypes,
if it ain't broke don't fix it. Please don't remove the prototype from the module! Just don't use them without a damn good reason.