Ich versuche herauszufinden, welches Modul in meiner CGI :: Application Moose lädt. Ich habe versucht, "require" zu überladen, aber die Syntax scheint nicht ganz richtig zu sein. Wenn jemand den folgenden Code aufräumen könnte, würde ich es begrüßen:
%Vor%Das Problem mit diesem Skript besteht im Grunde darin, dass es nichts wirklich lädt. Wenn CORE :: require (@ ) aufgerufen wird, tut "nichts". Ich habe versucht, den Skriptnamen direkt mit $ [0] zu übergeben, aber das hat nur dazu geführt, dass das Skript so lange blockiert ist, bis es abgelaufen ist.
HINWEIS: Das obige Skript befindet sich am Anfang meines Startup-Skripts
Hows über:
%Vor% Dies funktioniert, weil Unterroutinenreferenzen in @INC
aufgerufen werden und Coderef und Dateiname als Argumente übergeben werden. Siehe require
perldoc:
Wie von phaylon erwähnt, können Sie auch Devel :: TraceLoad , um eine Zusammenfassung aller Module zu erhalten, die geladen wurden, während Ihre Anwendung lief (und welche Zeile der Datei sie geladen hat) mit
%Vor% Sie können herausfinden, wer ein bestimmtes Modul lädt, indem Sie einige Zeilen am Anfang des Moduls einfügen, um den "Anrufer" zu erhalten. Finde Moose.pm in deinem Bibliotheksbaum ( perl -mMoose -wle'print $INC{"Moose.pm"}'
, und bearbeite ihn in:
Das ist schnell und dreckig, aber es klingt als wäre es alles was du brauchst. (Vergiss nicht, die Änderungen an Moose.pm zu ändern, wenn du fertig bist!)
Tags und Links perl moose dbix-class