As hardburn mentioned, prototypes can be used for emulating built-in functions such as push, and also such as grep (which allows one to write
mygrep { whatever } @a instead of
mygrep(sub{ whatever }, @a). While this syntactic sugar is nice, it sometimes leads into problems and is frequently misunderstood and used for the wrong purposes (such as the function you mention).
However, note that method calls are not affected by prototypes. That means that if you are calling your function as $obj->create or Package->create you won't be affected by the prototypes at all. In that case removing them wouldn't hurt much either.