Perl Config Datei auslagern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
MightyTuX
Beiträge: 185
Registriert: 26.01.2004 18:13:47
Wohnort: /dev/null

Perl Config Datei auslagern

Beitrag von MightyTuX » 31.08.2005 08:43:40

Moin, ich bin noch ein anfänger in Sachen Perl und CGI aber versuche mich erade damit.
Mein erster Versuch (ein Weblog) ist auch fast vor seiner ersten Fertigstellung. doch nun würde ich gerne die von mir definierten Variablen in ein exterenes Config File schmeissen und zu begin einlesen.
Mit folgenden Code habe ich gedacht ein wenig weiter zu kommen aber das funzt so nicht. Gibt es vielleicht eine einfachere Art wie in PHP wo man einfach ein @include ("config.inc.php") machen kann?

Code: Alles auswählen

my $CONFIGFILE = "blog.cfg";
require "$CONFIGFILE";

open(CONFIG, "<$CONFIGFILE")
                or print STDERR "Config File not available at $CONFIGFILE $!";
.
.
.                
close (CONFIG);
mfg Mighty
"the box said: "requires windows 98 or better", so is installed Debian

harre
Beiträge: 65
Registriert: 22.11.2004 18:50:51
Wohnort: München

Beitrag von harre » 31.08.2005 09:11:55

Servus,
Ein "require <datei>;" sollte doch genügen, um Variablen im Script zu definieren?

Das "Open..." mußt weglassen, weil du damit die Datei ja nur zum Bearbeiten einliest.

Gruß
Harre

MightyTuX
Beiträge: 185
Registriert: 26.01.2004 18:13:47
Wohnort: /dev/null

Beitrag von MightyTuX » 31.08.2005 09:56:30

Danke für die schnelle Antwort. Das hatte ich auch schon probiert aber irgendwie werden die Variablen die ich dahin auslager nciht eingelesen ....

Code: Alles auswählen

Global symbol "$DBTYP" requires explicit package name at blog.cgi line 18.
Global symbol "$DATABASE" requires explicit package name at blog.cgi line 18.
Global symbol "$HOST" requires explicit package name at blog.cgi line 18.
Global symbol "$USERNAME" requires explicit package name at blog.cgi line 21.
Global symbol "$PASSWORT" requires explicit package name at blog.cgi line 21.
in der Config sind die Variablen so eingetragen ...

Code: Alles auswählen

;
my $DATABASE = 'test';
my $HOST = 'localhost';
my $DBTYP = 'mysql';
my $USERNAME = 'testuser';
my $PASSWORT = 'blablub';
Die gleichen Variablen im cgi selbst führen zu der gewünschten Ausgabe ..
"the box said: "requires windows 98 or better", so is installed Debian

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 31.08.2005 10:26:33

Schau Dir doch eines der zahlreichen Config Module im CPAN an. Config::Simple ist vielleicht passend.

-Flo

harre
Beiträge: 65
Registriert: 22.11.2004 18:50:51
Wohnort: München

Beitrag von harre » 31.08.2005 18:26:12

is auch ne Möglichkeit, warum auch alles selberschreiben :wink:

es gibt sogar schon "debianisierte" Module

Code: Alles auswählen

apt-cache search libconfigfile-perl
apt-cache search libconfig-simple-perl
vielleicht ist was passendes dabei...

Grüße
Harre

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.08.2005 23:52:53

harre hat geschrieben: vielleicht ist was passendes dabei...
wenn nicht, laß einfach das "my" bei der Variablendeklaration weg, oder verwende "our" :wink:
Gruß
gms

Antworten