Hallo,
heute mal eine etwas abgedrehte Idee: Ich programmiere ein größeres Projekt mit Moose, MooseX::Params::Validate etc. In den ganzen Modulen, die ich erstelle, muss ich die benutzen Module immer und immer wieder einbinden. Jetzt stellt sich mir (als faulem Menschen) die Frage, ob man diese Präambel nicht abkürzen kann. Ich stelle mir ein "Meta-Modul" vor, welches ich einbinde. Dieses exportiert/importiert/... dann alle "Standard-Module", die ich so benötige.
Als Beispiel mal das "Meta--Module" MyApp/Meta.pm:
use Moose;
use MooseX::Params::Validate;
use Data::Dumper;
use Log::Log4perl qw/:easy/;
In meinem erstem Modul MyApp/Modul1.pm sollte kann ich dann einfach schreiben:
package MyApp::Modul1;
use MyApp::Meta;
sub foo {
print Dumper(@_);
}
Das funktioniert auch wunderbar!
Wenn ich jetzt allerdings ein zweites Modul MyApp/Modul2.pm implementiere:
package MyApp::Modul2;
use MyApp::Meta;
sub bar {
print Dumper(@_);
}
beschwert sich der Perl Interpreter, da "Undefined subroutine &MyApp::Modul2::Dumper called at MyApp/Modul2.pm". Versteht sich!
Jetzt ist die Frage: Kann ich mit irgendwelcher Perl-Black-Magic den Inhalt von MyApp::Meta "mehrfach" importieren, sodass er in jedem importierenden Modul verfügbar ist?
Ich meine irgendwo im Netz so etwas mal gelesen zu haben, kann es jedoch leider nicht mehr finden. :-(
Vielen Dank,
Manuel