eval { $self->find($foo); }; if ($@) { if ($@->isa('Signal::Search') { if ($@->isa('Signal::Search::Found')) { print "found"; } else { print "Not found"; } } else # These are (presumably) error conditions ... { # Handle error here. } }