PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Config Datei in Perl auslesen



pfleidi85
09-09-2005, 13:14
Ich habe hier ein Script das eine config Datei auslesen soll:

die Eintrage der Datei sehen folgendermassen aus:


user=username
password=passwort
....

Aus dieser conf sollen Die Zugangsdaten der Datenbank ausgelesen werden und spaeter noch globale Konfigurationen vorgenommen werden.


if(-r "$conf") {
open(CONFIG, "< $conf") || die "$conf could not be opened\n";
my @content = <CONFIG>;

#Hier soll der Inhalt z.B. nach user durchsucht werden und der username in die Variable $user gespeichert werden

close(CONFIG);
my $driver = "DBI:mysql:$db:$host";
}
else {
print("$conf is not readable");
}


Ich habe gerade erst mit Perl angefangen und weis deshalb nochnicht richtig wie ich an die Sache rangehen soll. Wenn ich nen Beispielcode haette wuerde das mir weiterhelfen ...

quinte17
09-09-2005, 14:10
also wenn du die config datei in perl schreibst, dann könntest du die ganz billig includen... wäre eine möglichkeit ;)

wenn du des selbst parsen willst, dann ist des schon aufwändiger würde es aber so machen (schmatisch):
1. datei öffnen
2. zeilenweise lesen
3. die aktuelle zeile überprüfen ob eine deiner configvariablen vorkommen, und wenn ja diese versorgen
4. solange zu 2. bis dateiende erreicht
5. datei schließen

zu 3. hier entweder ein if-else konstrukt, oder wenn möglich einfach eine switch anweiung... zur not könnte man des auch halbwegs einfach machen ala:
@var_array = split(/=/,$zeile);
$variable[var_array[0]] = var_array[1];

splitte string bei = und nimm den linken teil als index für ein assioziatives arreay her, und schreibe dort den rechten wert hinein.

dann wenn alles richtig geschrieben ist, kannst du mit
$variable[user] auf den benutzernamen zugreifen..

kannst ja den linken teil noch von der großundklein schreibung befreien, damit du da keine probleme hast..

greetz

michael.sprick
09-09-2005, 14:51
Config::IniFiles (http://search.cpan.org/~wadg/Config-IniFiles-2.38/IniFiles.pm) kann genau das, was Du brauchst ;)