Da es viele Möglichkeiten gibt, wie ein Modul seine Funktionen in den Namespace use
-ing exportieren kann, müssen Sie möglicherweise Code-Grabung durchführen, um jede gewünschte Bibliothek zu implementieren. Was Sie fragen, ist nichts, was für Moose spezifisch ist. Sie können also Ihr eigenes Best Practices-Modul schreiben, das eine Gruppe von Standards für Sie erstellt, z.
use OurCompany::BestPractices::V1;
mit
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 macht die Dinge ein wenig komplizierter, da es auf der Suche nach dem Paket der Verwendung-er verlässt sich vom Anrufer() und verwendet die goto, aber Sie können eine bessere Lage zu finden, Weg mit mehr Tests. Je mehr Sie implementieren, desto komplizierter kann diese Bibliothek sein, aber sie ist möglicherweise von ausreichendem Wert, um die einmalige Lösung zu haben, die Sie in Ihrem gesamten oder Ihrem Unternehmenscode verwenden können.
Tolles Beispiel, danke – friedo
Ich endete mit einer Variation dieser Idee. – friedo