Package A; use Carp; sub new { ... } sub f1 { my $param1 = shift; my $param2 = shift; my $param3 = shift; croak '- parameter1 required' unless $param1; if ((!$param2) && $param3 eq 'X') { croak '- parameter2 required' ; } some code here; } #### use Test::More qw(no_plan); my $n = 1; BEGIN { use_ok('A'); } $n++; my $a = new A; isa_ok( $a,"A"); $n++; eval { $a->f1( ) }; print "ok $n"; print "\t\tno arguements passed\n"; if ( $@) { diag ( "$@\n" ); } $n++;