Это продолжение "Как мне обойти вызов 'die' в библиотеке Perl, которую я не могу модифицировать?".
У меня есть подпрограмма, которая много раз вызывает Library-Which-Crashes-Sometimes. Вместо того, чтобы связывать каждый вызов в этой подпрограмме с eval{}, я просто позволяю ему умереть и использую eval{} на уровне, который вызывает мою подпрограмму:
my $status=eval{function($param);};
unless($status){print $@; next;}; # print error and go to
# next file if function() fails
Однако есть условия ошибки, которые я могу уловить в функции(). Каков наиболее правильный/элегантный способ разработки перехвата ошибок в подпрограмме и вызывающей подпрограмме, чтобы я получил правильное поведение как для перехваченных, так и для необработанных ошибок?