use Carp; ... sub foosub { my ($i, $x, $foo) = @_; croak "first argument must be positive" unless $i > 0; croak "too few arguments" unless defined $foo; # now start doing something ... }