Проблема
Многие используют Try::Tiny. Все в этом модуле хорошо, только не хватает вот чего-то вроде:
try { die Class1->new(); } catch('Class1') { # Catch all exceptions of Class1 } catch('Class2') { # Catch all exceptions of Class2 } catch { # Catch other exceptions }К сожалению, сделать такой синтаксис, не убрав "::Tiny" с названия модуля, не так просто. Кроме того, переписывать Try::Tiny вообще нет никакого желания.
Решение 1
Немного подумав я пришел к такому варианту: