|Subject:||Use of Carp::Always infects code outside your scope|
If you use Carp::Always, it makes *all* warns and dies carp/croak, even outside your scope. That's the point of Carp::Always. And that makes it totally inappropriate for use in your module. Use Carp to die/warn from your caller's perspective -- never Carp::Always.