http://www.perlmonks.org?node_id=124477


in reply to When to use Prototypes?

I think I'm about to lose my newly earned 'monk' status with this post, but here goes anyway.

I use prototypes for any sub I write that does not take a scalar(s) as args. I do this for 2 reasons:
  • First, it helps for readability of larger scripts, and just by looking at my sub prototypes at the top I know what to pass it.
  • Second, for maintainability, when I look at stuff I wrote months ago I can see exactly what I'm passing and how to reuse that sub easily.
    Now this could also be because I write too much C, and like to see what is being passed around at a glance, personally, prototyping helps. Being able to pass an array ref (like you have to) in the same way I would (logically) pass an array (like I would want to) is also more readable for me.

    "Nothing is sure but death and taxes" I say combine the two and its death to all taxes!
  • Replies are listed 'Best First'.
    Re^2: When to use Prototypes?
    by Aristotle (Chancellor) on Nov 10, 2001 at 21:18 UTC
      I don't think it does much for readability, since at best you see the projected type of argument, but still have to look the meaning of each of them. Putting a cleanly written and commented local variable assignment like my ($ip, $port, $use_udp, $msg_array) = @_; at the top of a function will probably help a lot more.