Dado que hay muchas maneras en que un módulo puede exportar sus funciones al espacio de nombres use
-ing, es posible que necesite realizar una búsqueda de código para implementar cada biblioteca deseada. Lo que está solicitando no es algo específico de Moose, por lo que puede escribir su propio módulo de prácticas recomendadas o el de su empresa, que establecerá un grupo de normas para que trabaje, p.
use OurCompany::BestPractices::V1;
con
package OurCompany::BestPractices::V1;
use strict;
use warnings;
use feature (':5.10');
require Fatal;
require Moose;
# Required for straight implementation of autodie code
our @ISA;
push @ISA, qw(
Fatal
);
sub import {
my $caller = caller;
strict->import;
warnings->import;
feature->import(':5.10');
Moose->import ({into => $caller});
#autodie implementation copied from autodie source
splice(@_,1,0,Fatal::LEXICAL_TAG);
goto &Fatal::import;
}
1;
Autodie hace las cosas un poco más complicado ya que se basa en la búsqueda de paquete del uso-er del llamante() y utiliza el Goto, pero usted puede ser capaz de encontrar una mejor camino con más pruebas. Cuanto más implemente, más complicada puede ser esta biblioteca, pero puede ser lo suficientemente valiosa como para que tenga la solución única que puede usar dentro de su código o el de su compañía.
Gran ejemplo, gracias – friedo
Terminé usando una variación de esta idea. – friedo