Vous savez comment Moose allume automatiquement J'ai suivi là où l'orose est-ce, dans Cependant, je ne peux pas comprendre un moyen d'étendre cette méthode d'importation dans une voie d'orignal-ish. p>
Comment dois-je gérer cela? p>
strict code> et
avertissements code> pendant l'importation? Je souhaite étendre ce comportement en allumant
autodie code> et
Utiliser la fonctionnalité ': 5.10' code> dans mes classes de mon orose. P>
Moose :: Exporter Code>, qui assemble une importation de
personnalisée code> SUB pour l'orignal qui appelle
strict-> importation code> et
avertissements-> importer code> pour la classe d'appel. p>
4 Réponses :
Vous devez définir une sous-intitulée Importer dans votre colis et importer toutes les autres choses là-bas.
Un exemple de moderne :: Perl (un autre module de stratégie que vous pourriez regarder): P>
use 5.010_000; use strict; use warnings; use mro (); use feature (); sub import { warnings->import(); strict->import(); feature->import( ':5.10' ); mro::set_mro( scalar caller(), 'c3' ); }
Mon approche résout le problème à l'envers.
Pourquoi ne pas utiliser Toolset pour créer un groupe de Le code doit ressembler à quelque chose comme: p> Je n'ai pas testé cela. Franchement, je viens de trouver Utiliser les instructions code> qui inclut
Moose code>, ainsi que vos pragmas supplémentaires? p>
Toolset Code> Il y a quelques jours, et je n'ai pas eu la chance de l'essayer encore. FWIW, les critiques sont positives. P> p>
Merci pour la suggestion. Je n'avais pas entendu parler de l'outil d'outils; Je l'enquête maintenant.
Comme il existe de nombreuses façons, un module peut exporter ses fonctions dans l'espace de noms code> user code>, vous devrez peut-être faire creuser un code de code afin de mettre en œuvre chaque bibliothèque souhaitée. Ce que vous demandez n'est rien de spécifique à Moose, vous pouvez donc écrire votre meilleur module de pratique de votre entreprise qui configurera un groupe de normes pour que vous puissiez travailler avec, par exemple
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;
J'ai fini par utiliser une variante de cette idée.
ceci peut ensuite être utilisé comme p> < Pré> xxx pré> p> Moose :: Exportateur Code> vous permettra de définir une méthode Custom
Importer code> pour une classe de sucre que vous utilisez.
Moosex :: Poe Code> Utilisez une version de cela pendant des années, mais le fait dans ce que je considère une mode "pirate". En regardant la documentation de
Moose :: exportateur code> Les éléments suivants doivent être à peu près ce que vous demandez
Merci! Je vais donner cela un coup de feu plus tard aujourd'hui et voir si je peux lui donner un sens.