in reply to is there a way to avoid dieing ?

I wouldn't be likely to use No::Die because it allows execution of code where the programmer determined that conditions were unsuitable for this. It seems most unlikely that disabling die will lead to correct or even tolerable behaviour.

The cheapest safe way seems to me to be to inherit the module into a wrapper class where the offending method is overridden (could for instance be copied to a local version in an own module and the problem fixed there) and to use objects from that class instead.

Update: Exception::Died looks like a reasonable approach, although I would still expect method overriding to give me what I actually needed

One world, one people