これは、「変更できない Perl ライブラリで 'die' 呼び出しを回避するにはどうすればよいですか?」の続きです。.
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
ただし、function() でキャッチできるエラー条件があります。キャッチされたエラーとキャッチされていないエラーの両方に対して正しい動作が得られるように、サブルーチンと呼び出しルーチンでエラーキャッチを設計する最も適切でエレガントな方法は何ですか?