Wenn die main kompliliert wird: Überall da wo use ... steht -> das wird zuerst kompiliert. Und ob der Perl-Interpreter beim Kompilieren dieselbe Reihenfolge nimmt, wie Du notiert hast, tja, das weiß ich auch nicht, auf jeden Fall würde ich mich nicht darauf verlassen.
Anderer Vorschlag: Über eine mögliche Vererbung nachzudenken. Könnte so aussehen:
use MySQLModul;
use NaechstesModul;
my $instanz = NaechstesModul->new(%zugangsdaten);
Wobei:
use MySQLModul; wird dann nicht mehr in der main notiert sondern in dem Modul was erbt.
Jetzt könntest Du noch in der Basisklasse eine Config-Datei einbinden, welche die Zugangsdaten auch ohne %zugangsdaten setzt (Default) und dafür sorgen, dass die Default-Zugangsdaten (z.B. Deine lokale DB) im Konstruktor der Subklasse überschrieben werden können (und sollten).
Also: Abhängigkeiten zwischen Modulen durch Vererbung regeln.
Nochwas zu use: Wenn Du notierst
ist der String 'bar' das zweite Argument in der Methode 'import', die beim Kompilieren aufgerufen wird (das erste Argument ist der Klassenname).
Mit require .. wird 'import' nicht aufgerufen. Evntl. könntest Du mit der 'import' Methode was anfangen...
--Rosti
PS/Edit:
http://rolfrost.de/map/perlbase/dbi_enhanced.html
Last edited: 2012-06-01 18:51:17 +0200 (CEST)