http://www.perlmonks.org?node_id=1033911


in reply to Try::Tiny catch block with $_ eq ''

I don't know answer to your question, but you can try use perl 'sigtrap' module to get stacktrace, and possibly temporary replace try/catch/$_ with 'unless defined eval { }'/$@ , to debug your code.
UPD: For example
unless (defined eval { $self->_run($self, $row_id, $subject); 1 }) { $logger->error("run($row_id): $@\n") }; $self->_clear_subject;
this way you'll check if that is the problem with "my $_" or no.