Try::Tiny::Retry is awesome!
Perl で retry 処理を書くとき、Sub::Retry をよく使っていた。 これの唯一の不満がすべての retry が失敗ときの処理を書きたいとき、自分でキャッチするコードを書かなければいけないところだった。つまり
use Sub::Retry; eval { retry 10, 1, sub { may_fail(); }; }; if ($@) { # すべての retry が失敗したときの処理を書く。 }
のように書かなきゃいけない。
ところがTry::Tiny::Retry を使うと、
use Try::Tiny::Retry; retry { may_fail(); } catch { # すべての retry が失敗したときの処理を書く。 };
のようにとてもすっきり書ける! awesome!