Jedes Mal, wenn ich eine Catalyst-Anwendung erstelle, komme ich an einen Punkt, an dem die Anwendung schmerzhaft langsam (neu) gestartet wird. Die Verzögerung beträgt etwa 10 Sekunden. Heute habe ich herausgefunden, dass die Verzögerung durch die folgenden Zeilen verursacht wird:
use lib '/home/zoul/opt/lib/perl/5.8';
use lib '/home/zoul/opt/share/perl/5.8';
use lib '/home/zoul/opt/lib/perl/5.8.8';
use lib '/home/zoul/opt/share/perl/5.8.8';
Diese Zeilen werden nur auf dem Server benötigt, da ich dort keinen Root-Zugang habe und meine Perl-Module unter ~/opt
. (Ich kann den Apache nicht verwenden. SetEnv
Modul, da der Hoster es nicht unterstützt. Daher muss ich die Bibliothekspfade in App.pm
.) Auf meinem Entwicklungsrechner, auf dem die blutige Verzögerung auftritt, gibt es diese Pfade nicht.
Meine Fragen: (1) Warum verursachen die Linien so viel Verzögerung, etwa 7 Sekunden? (2) Wie kann man das Problem lösen? Naive Bedingung use
funktioniert nicht:
if ($on_the_hosting_machine)
{
use lib '…';
}
Ich denke, ich könnte eval
irgendwie, oder gibt es einen besseren Weg?