Thread Variablen an Package übergeben (7 answers)
Opened by Muffi at 2012-06-01 16:33

rosti
 2012-06-01 18:35
#158704 #158704
User since
2011-03-19
3216 Artikel
BenutzerIn
[Homepage]
user image
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:

Code (perl): (dl )
1
2
3
4
use MySQLModul;     # Basisklasse für MySQL-Zeugs
use NaechstesModul; # erbt von der Basiklasse

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
Code (perl): (dl )
use Foo qw(bar);


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)

View full thread Variablen an Package übergeben