To expand on the parent's post update, when passing refs you *can* check if it's the proper one. To take your example:
sub callmeth { my @arguments = @_; my $scalar = shift(@arguments); my $arrayref = shift(@arguments); unless(ref($arrayref) eq 'ARRAY')) { carp/croak/die/whatever you feel like; } * do stuff here }
Personally I spend less and less time on making sure methods that are available from outside a package check what their input is. If it's code that at some point might be used by others then i might check some inputs and do a little carping when it's wrong, but Perl is a highly flexible language and it's neigh impossible to account for every possible way someone using your code might screw things up. If the code works and you've accounted for anything *you* could do wrong and the documentation is clear and complete then your job is done in my opinion.

Remember rule one...


In reply to Re^2: Parameters to functions by Forsaken
in thread Parameters to functions by perl_devel

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.