В прошлом это было невозможно, однако вы далеко не первый, кто просит об этом. Пользовательские исключения управления позволили бы вещам в стиле фреймворка выполнять внутренний поток управления без CATCH
/ default
в пользовательском коде, случайно проглотившем исключения.
Bleeding edge Rakudo теперь содержит начальную реализацию принятия X::Control
в качестве указания на исключение элемента управления, что означает, что код, как вы его написали, теперь работает так, как вы ожидаете. Это, за исключением возражений, появится в выпуске Rakudo 2019.01, однако его следует воспринимать как черновой вариант до тех пор, пока оно также не появится в выпуске спецификации языка.
Кроме того, был предложен тест спецификации, поэтому, если нет возражений, эта функция будет указана в будущем выпуске языка Perl 6.