in reply to Re: Parameters to functions
in thread Parameters to functions

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...