##
croak "need a foo" unless UNIVERSAL::isa($foo, 'Foo');
##
##
package Foo;
use Carp;
use Regexp::Common;
# ... rest of class ...
sub add {
my ($self, $n) = @_;
croak "need Foo object" unless UNIVERSAL::isa($self, 'Foo');
croak "need number" unless $n =~ $RE{num}{real}
$self->{total} += $n;
};